タスク
私は誰もが自動コード生成と仕事中の時間の節約を愛していると思います。日中は多くのクラスとメンバーを作成するgetters
必要があり、それらすべてを手動で作成する必要はありません。
タスクはgetters
、すべてのクラスメンバーに対して自動的に生成されるプログラムまたは関数を作成することです。
入力
私たちの言語では、オブジェクトは非常に単純です。クラスおよびメンバーの名前は、文字から始まる必要[a-zA-Z]
があり、文字のみを含めることができます[a-zA-Z0-9]
。以下に例を示します。
class Stack {
public overflow;
protected trace;
private errorReport;
}
出力
これは、指定された例に基づいた有効な出力です。
class Stack {
public overflow;
protected trace;
private errorReport;
public function getOverflow() {
return this->overflow;
}
public function getTrace() {
return this->trace;
}
public function getErrorReport() {
return this->errorReport;
}
}
ゲッター
getter
メソッドの要件は次のとおりです。
- 関数名は、先頭に
get
大文字のイニシャルを持つメンバー名が続く必要があります。 - この関数にはパラメーターがありません。
- 変数を返すには、を使用します
return this->memberName;
。 getters
およびsetters
(ボーナスを参照)はグループ化され、すべての変数宣言の後に来る必要があります。
例:
private value1;
private value2;
public function getValue1() { return this->value; }
public function setValue1(value) { this->value = value; }
public function getValue2() { return this->value; }
public function setValue2(value) { this->value = value; }
要求事項
- プログラムまたは関数を作成します。
- 入力は、STDIN、コマンドライン引数、関数引数、ファイルなどから取得できます。
return
ファイルへの単純な値からSTDOUTへの書き込みまで、任意の出力形式を使用できます。- 入力および出力は、空白、改行、タブなどでフォーマットする必要はありません。これは有効な入力です
class A{protected a;}
。 - 入力が有効であり、プログラムが予期しない入力を処理できると想定できます。
ボーナス
各機能の30%を引き出すことで、元のバイトカウントの10%まで下げることができます。
A:あなたのプログラムは新しく追加された変数に対処し、不足しているものgetters
だけを追加できます(public function getB() { return this->b; }
この場合):
class A {
public a;
public b;
public function getA() { return this->a; }
}
B:プログラムは以下も生成しsetters
ます。
class A {
public a;
public getA() { return this->a; }
public setA(a) { this->a = a; }
}
C:プログラムは静的メンバーを処理できます。
class A {
public static c;
public static function getC() { return this->c; }
}
これはコードゴルフです。バイト単位の最短回答が勝ちです。標準の抜け穴は許可されていません。
3
これは私の最初の質問です-それほど難しい質問ではありません。あなたがそれを好き願っています。Sandboxの役立つヒントを提供してくれたMartinBüttnerに感謝します。
—
ここにユーザー名を挿入します
入力ごとにクラスは1つだけですか?
—
コナーオブライエン
両方のボーナス
—
FryAmTheEggman
A
をサポートする場合B
、ゲッターはあるがセッターはないアイテムには出力にセッターを含めるべきですか?
@FryAmTheEggmanそれは非常に良い質問です。ボーナスBについては、入力が完了したと想定できるため、ゲッターがある場合はセッターもあると言えます。
—
insertusernamehere
どの言語では、を参照するために許可されている
—
ニール
this
中でstatic
、アクセサ?