우리가라는 단일 객체를 포함하는 전역 범위를 가진 환경이 있다고 상상해보십시오 codegolf
. 이 개체에는라는 stackexchange
속성 이있는 단일 자식 이 있습니다 com
.
이 속성에 액세스하는 방법은 다음과 같습니다 codegolf.stackexchange.com
.
도전
프로그램 / 함수의 입력은 전역 범위의 속성에 액세스하려는 문자열입니다. 이 속성이 발견 될 때마다 정확한 값을 인쇄 / 반환해야합니다. 해당 부동산을 찾을 수 없으면 허위 가치가 인쇄 / 반환됩니다. 캐치 : 존재하지 않는 객체의 속성에 액세스하려고하면 프로그램이 모든 종류의 오류를 발생시킵니다 ¹.
조금 더 쉽게 만들기 위해 입력이 항상 [a-z.]
비어 있고 절대로 비어 있지 않으며 반복 .
되지 않으며으로 시작하거나 끝나지 않을 것이라고 가정 할 수 있습니다 .
. 그래서 codegolf.
잘못된 입력입니다.
테스트 사례
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
이것은 바이트 단위의 code-golf , 가장 짧은 코드입니다.
¹ 선택한 언어가 오류 를 전혀 지원하지 않는 경우 오류 가 있음을 분명히하는 것을 출력해야합니다. 예를 들어, 진실성에 1을, 거짓에 0을 사용하면 오류에 "e"를 사용할 수 있습니다. 반환 값을 일관되게 유지하고 게시물의 동작을 설명하십시오.
codegolf.com
를 배제하기 위해 테스트 케이스 에 추가 요청codegolf(.stackexchange)?(.com)?$
foo.stackexchange.com
foo
돌아올 것이다undefined
하지만 오류가 발생하지 않습니다. 정의되지 foo.bar
않았기 때문에 오류가 발생 foo
합니다.
codegolf.foo => 0
그렇습니다 foo => 0
.
foo => Error
더 적절한 것 같은 느낌이 든다 .