2010-02-24 5 views
2

Smalltalk에서 기호를 이식성있게 사용하기위한 "모범 사례"규칙은 무엇입니까? 나는 주로 끽끽 소리와 pharo를 사용하며, 다른 스몰 토크는 그렇지 않지만 'foo'= #foo와 #foo = 'foo'를 모두 허용한다는 것을 알고 있습니다. 나는 기호가 식별을위한 것이며 문자열 대신 사용되어서는 안된다는 것을 이해합니다. 그러나 심볼 객체가 copyWith : 또는 do :와 같은 메시지를 보낼 수있는 컬렉션이라고 생각하는 것이 안전할까요? 아니면 어떤 종류의 Collection을 먼저 변환해야합니까?Smalltalk에서 사용하는 Symbol의 "모범 사례"휴대용 방식이란 무엇입니까?

모든 조언을 주시면 감사하겠습니다.

답변

5

Seaside에서 따르는 규칙은 기호와 문자열을 섞어서는 안됩니다. 이렇게하면 문제를 피할 수 있습니다. 모든 플랫폼에서 심볼이 String의 하위 클래스가 아니므로 #copyWith : 또는 #do :를주의해야합니다.

다른 기호와 비교할 때 값싼 토큰으로 만 기호를 사용합니다. 나는 상징을 다른 것에 사용하지 않을 것이다.

+1

답변 해 주셔서 감사합니다. Pharo, Magritte, Pier, Seaside 및 다른 모든 위대한 업적에 대해서도 감사드립니다. – julio