SqueakByExample:3.8: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(SBE 3장요약 페이지 추가)
 
(스타일 수정)
Line 5: Line 5:
* 문자열은 작은 따옴표로 범위가 정해지며, 주석(comments)는 큰 따옴표로 정해집니다. 문자열 내부에서 사용하려면 큰 따옴표를 사용합니다.
* 문자열은 작은 따옴표로 범위가 정해지며, 주석(comments)는 큰 따옴표로 정해집니다. 문자열 내부에서 사용하려면 큰 따옴표를 사용합니다.
* 문자열과(string) 달리, 심볼은 광범위하게 고유성을 보장받습니다.
* 문자열과(string) 달리, 심볼은 광범위하게 고유성을 보장받습니다.
* 리터럴 배열(literal array)를 정의하기 위해 #( ... )를 사용합니다. 동적 배열(dynamic array)를 정의하기 위해 { ... }를 사용합니다. <br>#( 1 + 2 ) size 3 이지만 { 1 + 2 } size 1임에 유의합니다.
* 리터럴 배열(literal array)를 정의하기 위해 #( ... )를 사용합니다. 동적 배열(dynamic array)를 정의하기 위해 { ... }를 사용합니다. <br>#( 1 + 2 ) size ⇒  3 이지만 { 1 + 2 } size ⇒  1임에 유의합니다.
* 3 종류의 메시지가 있습니다: 단항 메시지(예를 들면 1 asString, Array new) 바이너리 메시지(예를 들면 3+4, 'hi', ' there') 그리고 키워드 메시지(예를 들면 'hi' at: 2 put: $o)
* 3 종류의 메시지가 있습니다: 단항 메시지(예를 들면 1 asString, Array new) 바이너리 메시지(예를 들면 3+4, 'hi', ' there') 그리고 키워드 메시지(예를 들면 'hi' at: 2 put: $o)
* 케스케이드 메시지 발송은 세미콜론으로 분리되어 동일한 목표로 보내어 집니다: OrderedCollection new add: #calvin; add: #hobbes; size 2
* 케스케이드 메시지 발송은 세미콜론으로 분리되어 동일한 목표로 보내어 집니다: OrderedCollection new add: #calvin; add: #hobbes; size ⇒  2
* 로컬 변수는 수직 바와 함께 공표됩니다. 할당을 위해 :=를 사용합니다. ←또는 _는 작동하지만, 스퀵 3.9 이후로, 비 추천 기호입니다. |x| x:=1  
* 로컬 변수는 수직 바와 함께 공표됩니다. 할당을 위해 :=를 사용합니다. ←또는 _는 작동하지만, 스퀵 3.9 이후로, 비 추천 기호입니다. |x| x:=1  
* 표현식은 메시지 sends, cascades 그리고 assingnments로 구성되며, 괄호로 그룹을 만들 수 있습니다. 스테이트먼트는 구두점으로 구별된 표현식입니다.
* 표현식은 메시지 sends, cascades 그리고 assingnments로 구성되며, 괄호로 그룹을 만들 수 있습니다. 스테이트먼트는 구두점으로 구별된 표현식입니다.
* 블록 클로저(Block closures)는 꺽쇠괄호로 둘러싸인 표현식입니다. 블록은 인수를 취할 수 있고 임시 변수를 포함할 수 있습니다.
* 블록 클로저(Block closures)는 꺽쇠괄호로 둘러싸인 표현식입니다. 블록은 인수를 취할 수 있고 임시 변수를 포함할 수 있습니다.
* 블록에 있는 표현식은 여러분이 블록 값…메시지를 정확한 숫자의 인수와 함께 보낼 때 까지 평가되지 않습니다. <br>[:x | x + 2] value: 4 6.
* 블록에 있는 표현식은 여러분이 블록 값…메시지를 정확한 숫자의 인수와 함께 보낼 때 까지 평가되지 않습니다. <br>[:x | x + 2] value: 4 ⇒  6.
* 컨트롤 구성(control constructs)을 위한 구문은 없으며, 메시지가 조건적으로 블록을 평가합니다. <br>(Smalltalk includes: Class) ifTrue: [ Transcript show: Class superclass ]
* 컨트롤 구성(control constructs)을 위한 구문은 없으며, 메시지가 조건적으로 블록을 평가합니다. <br>(Smalltalk includes: Class) ifTrue: [ Transcript show: Class superclass ]



Revision as of 12:24, 22 August 2012

3장 요약

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

Notes