Wyobraź sobie, że mamy środowisko o zasięgu globalnym zawierające tylko jeden obiekt o nazwie codegolf
. Ten obiekt ma jedno dziecko o nazwie stackexchange
, które ma właściwość o nazwie com
.
Wyglądałby dostęp do tej właściwości codegolf.stackexchange.com
.
Wyzwanie
Dane wejściowe twojego programu / funkcji będą ciągiem próbującym uzyskać dostęp do właściwości w zasięgu globalnym. Ilekroć ta właściwość zostanie znaleziona, wydrukujesz / zwrócisz prawdziwą wartość. Jeżeli właściwość nie zostanie znaleziona, wartość fałszowania zostanie wydrukowana / zwrócona. Złap: gdy próbujesz uzyskać dostęp do właściwości nieistniejącego obiektu, twój program powinien zgłosić dowolny błąd¹.
Aby było trochę łatwiej, możesz założyć, że dane wejściowe zawsze będą [a-z.]
, nigdy nie będą puste, nigdy nie będą powtarzać .
i nigdy nie zaczną się ani nie zakończą na .
. Podobnie codegolf.
jest z nieprawidłowym wejściem.
Przypadki testowe
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
To jest code-golf , wygrywa najkrótszy kod w bajtach
¹ jeśli (i tylko wtedy) swój język z wyboru nie obsługuje błędy w ogóle , trzeba wyjście coś, co sprawia, że jest jasne, że to błąd. Na przykład, jeśli użyjesz 1 dla prawdy i 0 dla fałszu, możesz użyć „e” dla błędu. Zachowaj spójność w zakresie wartości zwrotnych i wyjaśnij zachowanie w poście.
codegolf.com
do przypadków testowych w celu wykluczenia codegolf(.stackexchange)?(.com)?$
kontroli typu
foo.stackexchange.com
foo
wróci undefined
, ale nie wyrzuci błędu. foo.bar
zgłosi błąd, ponieważ foo
nie jest zdefiniowany.
codegolf.foo => 0
, Tak foo => 0
.
foo => Error
byłoby bardziej odpowiednie.