SqueakByExample:3.8

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

3장 요약

  • 스퀵은 가상 변수라고 불리기도 하는 여섯개의 예비 식별자를 갖고 있습니다:
    true, false, nil, self, super, thisContext.
  • 다섯 종류의 리터럴 오브젝트가 있습니다: 숫자 (5, 2.5, 1.9e15, 2r111 등),문자 ($a), 문자열 ('hello'), 심볼 (#hello), 그리고 배열 (#('hello'#hello))
  • 문자열은 작은 따옴표로 범위를 정하며, 주석은 큰 따옴표로 정합니다. 문자열 내부에서 사용하려면 큰 따옴표를 사용합니다.
  • 문자열과 달리, 심볼은 광범위한 고유성을 보장받습니다.
  • 리터럴 배열을 정의하기 위해 #( ... )를 사용합니다. 동적 배열을 정의하기 위해 { ... }를 사용합니다.
    #( 1 + 2 ) size ⇒ 3 이지만 { 1 + 2 } size ⇒ 1임에 유의합니다.
  • 세 종류의 메시지가 있습니다:
    단항 메시지(예를 들면 1 asString, Array new), 이항 메시지(예를 들면 3+4, 'hi', ' there'), 키워드 메시지(예를 들면 'hi' at: 2 put: $o)
  • 캐스케이드 메시지 발송은 세미콜론으로 분리되어 동일한 대상으로 보냅니다: OrderedCollection new add: #calvin; add: #hobbes; size ⇒ 2
  • 지역 변수는 수직 바와 함께 선언합니다. 할당을 위해 := 를 사용합니다. ←To Left Arrow또는 _는 작동하지만, 스퀵 3.9 이후로, 비추천 기호입니다.
    |x| x:=1
  • 수식식은 메시지 sends, cascades, assingnments로 구성되며, 괄호로 그룹을 만들 수 있습니다. 선언문은 구두점으로 구분한 수식입니다.
  • 블록 구분자Block closures는 꺽쇠 괄호로 둘러싼 수식입니다. 블록은 인수를 취할 수 있고 임시 변수를 포함할 수 있습니다.
  • 블록에 있는 수식은 여러분이 블록 값…메시지를 정확한 숫자의 인수와 함께 보낼 때까지 계산하지 않습니다.
    [:x | x + 2] value: 4 ⇒ 6.
  • 제어 구성을 위한 구문은 없으며, 메시지가 조건적으로 블록을 처리합니다.
    (Smalltalk includes: Class) ifTrue: [ Transcript show: Class superclass ]


Notes