Smalltalk Tips

From 흡혈양파의 인터넷工房
Jump to navigation Jump to search
Smalltalk Tips

객체의 클래스를 알고싶을때

내용

3 class. <- 영역선택후 Print it 진행

이렇게 하면 SmallInteger가 나온다


정작 하고싶은건 factorial의 class를 알고싶었던건데 안나온다.

그래서 Finder에서 factorial을 찾았더니 selector로 나오네. 그럼 이건 class가 아니라 method라는 의미.

찾아보니 SmallInteger의 부모class인 Integer의 method(selector)였다.

그러니 class를 찾아도 안나오지.... factorial은 class가 아니라 selector니까...

참고자료


smalltalk에서는 error의 return도 객체다

참고자료


block을 이용한 인자의 처리에 대한 Transcript와 string출력

내용

실제로 이렇게까지 쓸일은 없지만..... 객체의 동작을 테스트한다는점에서는 한줄로 보는 쓸모있는 예제가 되지 않을까 싶다

Transcript show: ([:x :y :aa :cc | x + y + ( aa * cc ) ] value: 1 value: 2 value: 3 value:4) printString.


블록으로 4개의 value를 받아서 연산한 결과를 string출력으로 보낸다음 그걸 Transcript의 show라는 셀렉터에 인수로 전달... 정도의 내용 되시겠다. 실제로 이렇게 쓸일은 없겠지...-.-;

주의할점이 하나 있다면 블록 전체를 ()로 감싼다음 printString을 먹여줘야한다는거. 연산식만 쓰는경우에는 상관이 없는데 이게 블록식 자체가 인수로 전달되어야 하다보니 3 printString같은상황이 되도록 깔끔하게 정리를 해줘야하는 모양.

참고자료