2014-11-12 5 views
0

블록을 인수로 가져 오는 메서드를 만들고 그 블록도 매개 변수를 가져옵니다. 블록이 true를 반환하면 뭔가를해야합니다 (예 : 1을 반환). false를 반환하면 다른 작업을 수행해야합니다.블록 및 ifTrue 문

이것은 내가 한 일입니다.하지만 ifTrue에 구문 오류가 발생합니다 ... 이 매개 변수로 인수를 받아야하는 방법입니까?

Mymethod: Block 

Block value: 'argument' 
ifTrue: [ ^1]. 
ifFalse: [^2]. 

및 방법에 대한 호출 :

object := myClass new. 
argument :=1 
boolValue := object Mymethod : [:argument | argument ==1 ] 

답변

5

당신이 #value:ifTrue: 블록에 메시지를, 그리고 당신이 전혀 불가능하다 아무것도 #ifFalse: 메시지를 (전송되는 것을 의미 쓴 방법 .처럼, 스몰 토크에서

또한
(Block value: 'argument') 
    ifTrue: [ ^1] 
    ifFalse: [^2] 

이 uncapitalized와 이름 변수에 대한 규칙은 : 당신이 한 줄에 그것을하고 싶은 경우에, 당신은 괄호를 사용한다또는 aBlock

+0

예 괄호로 고정했습니다. :-) – Ohad

+0

이 langauge에서 일하는 사람들이 있습니까? – Ohad

+0

예, 있습니다 : – MartinW