2017-10-27 6 views
1

매개 변수없이 f를 호출하면 스크립트 오류 : 설정을 허용하지 않으면 오류가 발생합니다! 그때의 blk 논쟁 때문에 왜?함수 내에서 rebol/red의 unset 매개 변수를 테스트하는 방법은 무엇입니까?

f: func['p [string! unset!]][ 
    if unset? 'p print "unset" 
] 
+1

참고! "값"(블록에 추가 될 수 있음)은 문제가됩니다. "[왜 (또는 왜) 안되는 지) [Rebol-like 언어에서 UNSET!]"(https://forum.rebol.info/t/why-or-why-not-have-unset-in -rebol-like-languages ​​/ 113) – HostileFork

답변

3

'p 단어 p로 평가합니다. p에 의해 언급 된 값의 유형을 테스트하기 위해, 당신은 :p을 사용하고 if에 대한 적절한 신체 블록을 제공해야합니다 UNSET 그

f: func ['p [string! unset!]][ 
    if unset? :p [print "unset"] 
] 

>> f "123" 
== none 
>> f 
unset