하나가 등 @
, +
, =
같은 기호를 사용하여 혼동하고 이 예약로 생각 될 수 있지만 (즉, 컴파일러에 알려진), 스몰 토크에 그들 모두의 선택기입니다 정기적 인 방법. 즉, 예약 된 토큰이 아니라 예상 된 동작을 구현하는 유효한 메시지 선택 자 (대부분의 경우)입니다. 우리가 구현을 검색하는 경우 @
의 특정 경우
, 우리가 일반적으로
@ aNumber
^Point x: self y: aNumber
로 구현 Number
에서 하나를 발견 할 것이다 (Pharo 그러나,이다 과속 일까지, 대한 원시적있다
이 메시지의 이유는 Point
생성 방법이 덜 장황하므로 Point x: 200 y: 300
대신에 클라이언트가 200 @ 300
이라고 써야하기 때문입니다.
이 패턴은 스몰 토크에서 흔히 사용됩니다. 이 [smalltalk] 태그에 몇 가지 질문이 있습니다. /
은 같은 종류의 지름길입니다. 2/3
은 (Fraction numerator: 2 denominator: 3) reduced
과 같습니다. 기타 예로는 ReadStream on: 'hello world'
에 대한 'hello world' readStream
, Number readFromString: '234.5'
에 대한 '234.5' asNumber
등이 있습니다.
예, '포인트'입니다. Google에 추가 할 필요는 없습니다. 구현자를 찾거나 표현식 '0 @ 0'을 디버그하면 아이디어를 얻을 수 있습니다. –
Morphic에서 시작된 것은 아니지만 이전에는 Smalltalk-80이었습니다. –
@Leandro Caniglia Fantasitc! 한 줄의 답을 써 주시겠습니까? 따라서 답변 된 질문을 수락하고 닫을 수 있습니까? 고마워. – mrsteve