Stellen Sie sich vor, wir haben eine Umgebung mit einem globalen Gültigkeitsbereich, der nur ein einzelnes Objekt namens enthält codegolf
. Dieses Objekt hat ein einzelnes Kind stackexchange
, das eine Eigenschaft namens hat com
.
Der Zugriff auf diese Eigenschaft würde so aussehen codegolf.stackexchange.com
.
Die Herausforderung
Die Eingabe Ihres Programms / Ihrer Funktion ist eine Zeichenfolge, die versucht, auf eine Eigenschaft im globalen Bereich zuzugreifen. Immer wenn diese Eigenschaft gefunden wird, müssen Sie einen Wahrheitswert drucken / zurückgeben. Wird die Eigenschaft nicht gefunden, wird ein falscher Wert gedruckt / zurückgegeben. Der Haken: Wenn Sie versuchen, auf eine Eigenschaft eines nicht vorhandenen Objekts zuzugreifen, sollte Ihr Programm einen Fehler auslösen¹.
Um die Sache ein bisschen einfacher zu machen, können Sie davon ausgehen, dass die Eingabe immer [a-z.]
, niemals leer, niemals wiederholt .
und niemals mit einem beginnen oder enden wird .
. Socodegolf.
also eine ungültige Eingabe.
Testfälle
codegolf.stackexchange.com => 1 // or any other truthy value
codegolf.stackexchange.net => 0 // or any other falsy value
codegolf.stackexchange => 1
codegolf.foo => 0
codegolf => 1
foo => 0
codegolf.com => 0
codegolf.constructor => 0
codegolf.foo.bar => Error (since foo is undefined)
codegolf.stackexchange.com.foo => Error (since com is a value, not an object)
codegolf.stackexchange.com.foo.bar => Error
foo.stackexchange.com => Error
foo.bar => Error
foo.bar.baz => Error
Das ist Code-Golf , der kürzeste Code in Bytes gewinnt
¹ , wenn (und nur dann) die Sprache Ihrer Wahl unterstützen Fehler nicht bei allen , müssen Sie Ausgabe etwas , was deutlich macht , dass dies ein Fehler ist. Wenn Sie zum Beispiel 1 für wahr und 0 für falsch verwenden, können Sie "e" für einen Fehler verwenden. Seien Sie in Ihren Rückgabewerten konsistent und erklären Sie das Verhalten in Ihrem Beitrag.
codegolf.com
zu den Testfällen hinzuzufügen , um codegolf(.stackexchange)?(.com)?$
Typprüfungen auszuschließen
foo.stackexchange.com
foo
würde zurückkehren undefined
, aber es würde keinen Fehler auslösen. foo.bar
würde einen Fehler auslösen, da foo
nicht definiert.
codegolf.foo => 0
so foo => 0
.
foo => Error
angemessener.