Görev
Sanırım herkes otomatik kod oluşturmayı ve çalışma sırasında biraz zaman kazanmayı seviyor. Gün boyunca çok sayıda sınıf ve üye oluşturmanız gettersgerekir ve bunların hepsini el ile oluşturmak istemezsiniz .
Görev, getterstüm sınıf üyeleri için sizin için otomatik olarak oluşturulan bir program veya işlev yazmaktır .
Girdi
Bizim dilimizde nesneler çok basittir. Sınıfların ve üyelerin adları bir karakterle başlamalıdır [a-zA-Z]ve yalnızca karakterleri içerebilir [a-zA-Z0-9]. İşte bir örnek:
class Stack {
public overflow;
protected trace;
private errorReport;
}
Çıktı
Bu, verilen örneğe dayanan geçerli bir çıktıdır:
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
Bir getteryöntemin gereksinimleri :
- İşlev adı, başından
getbüyük harfle başlayan üye adıyla başlamalıdır . - Fonksiyonun hiçbir parametresi yoktur.
- Değişken kullanımı döndürmek için
return this->memberName;. gettersvesetters( bkz . Bonuslar ) gruplandırılmalı ve tüm değişken bildirimlerin ardından gelmelidir.
Misal:
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; }
Gereksinimler
- Bir program veya işlev oluşturun.
- Giriş STDIN, komut satırı bağımsız değişkenleri, işlev bağımsız değişkenleri, bir dosya vb.
- Herhangi bir çıktı biçimi, basit bir
returndeğerden bir dosyaya veya STDOUT'a yazmadan kabul edilebilir . - Giriş ve çıkış boşlukların, yeni satırlar, sekmeler vb Bu, geçerli bir girdidir ile biçimlendirilmiş olması gerekmez:
class A{protected a;}. - Girişin geçerli olduğunu ve programınızın beklenmedik girişleri de beklenmedik şekilde işleyebileceğini varsayabilirsiniz.
Bonuslar
Her özellik için% 30'u geri çekerek orijinal bayt sayınızın% 10'una kadar düşebilirsiniz:
C: Programınız yeni eklenen değişkenleri ele alabilir ve gettersyalnızca eksikleri ekler ( public function getB() { return this->b; }bu durumda):
class A {
public a;
public b;
public function getA() { return this->a; }
}
B: Programınız ayrıca settersşunları üretir :
class A {
public a;
public getA() { return this->a; }
public setA(a) { this->a = a; }
}
C: Programınız statik üyeleri işleyebilir:
class A {
public static c;
public static function getC() { return this->c; }
}
Bu kod golf - bayt çok kısa cevap kazanır. Standart boşluklara izin verilmez.
Ave Balıcıları olan, ancak ayarlayıcıları olmayan öğelerin çıktısında ayarlayıcıları olmalı mı?
thisBir staticerişimcide hangi dilde başvurabilirsiniz ?