Squeak는 객체 지향적이므로 다른 함수에 매개 변수로 함수를 전달할 수 있어야한다는 것을 확실히 알고 있습니다. 그러나 이것에 대한 연구를하고 있는데 이것에 대한 정보를 찾을 수 없었습니다 . 내 직감이 맞습니까? 그렇다면 어떻게 완료되며 이후에 어떻게 호출합니까?Squeak에서 매개 변수로 함수 전달하기
2
A
답변
1
두 가지 다른 것을 혼동하고 있습니다. Smalltalk에서 전달하는 유일한 실제 "함수"는 블록입니다. 블록을 인자로 쓰는 것만으로 통과합니다 (모든 ifTrue:
에서와 같이). 개체에 메시지를 보내고 메시지를 동적으로 결정하려면 메시지 이름을 기호 (예 : #value
)로 전달하고 개체 (예 : perform:
)로 보낼 수 있습니다. 인스턴스 메서드 자체는 전달하지 않습니다. 선택자 기호를 전달하거나 메소드를 호출하는 메시지를 보내는 블록을 전달하십시오.
3
길게 대답.
실행 가능한 코드를 메서드에 전달하려면 블록을 사용하십시오.
있어서 정의
method: aBlock
aBlock value
이고
object method: [ Transcript show: 'hello' ].
을 다음과 같이, 코드 부분에 대한 파라미터를 전달 인자를 가진 블록을 사용하려는 경우이를 실행한다.
있어서 정의
method: aBlock
aBlock value: 'parameter'
이고
object method: [ :arg | Transcript show: arg ].
2 개 무제한 파라미터를 수행 할 수있는 동일한을 다음과 같이 메소드를 value:value:
및 블록 valueWithArguments:
을 사용하여 실행한다.
기호를 전달하는 경우 value:
을 사용하여 실행할 수도 있습니다. 기호는 실제로는 [ :arg | arg symbol ]
형식의 블록과 같습니다.
관련 문제
- 1. Java : 함수 매개 변수로 맵 전달하기
- 2. ASP.Net - C# - 매개 변수로 페이지 전달하기
- 3. odbc_execute()에 매개 변수로 연산자 전달하기
- 4. javascript 함수에 매개 변수로 컨트롤 전달하기
- 5. xml 문서를 매개 변수로 웹 서비스에 전달하기
- 6. 매개 변수로 정의 함수를 통과 내가 매개 변수로 함수를 전달하기 위해 노력하고
- 7. 배열을 함수 매개 변수로 사용
- 8. 매개 변수를 통해 서브 루틴/함수 전달하기
- 9. 내가 지금처럼 ArrayList를 매개 변수로 문자열 인수를 전달하기 위해 노력하고
- 10. MVC에서 변수의 따옴표를 이스케이프 처리해야합니다. JavaScript로 매개 변수로 전달하기 위해
- 11. URL을 GET 매개 변수로 전달하기 위해 인코딩하는 방법
- 12. 형식을 매개 변수로 전달할 SQL Server 함수
- 13. (Delphi) 함수 포인터 매개 변수로 DLL 호출
- 14. 매크로가 함수 인수의 기본 매개 변수로 사용됩니다.
- 15. 함수 매개 변수를 변수로 다시 선언 하시겠습니까?
- 16. 여러 콜백을 함수 매개 변수로 게시하십시오.
- 17. jQuery에서 함수 매개 변수로 객체 전달
- 18. typedef를 사용하여 매개 변수로 함수 포인터,
- 19. PHP : 매개 변수로 등호 기호가있는 함수?
- 20. Lambda \ Anonymous 매개 변수로 함수 사용
- 21. 배열이 8086 어셈블리의 함수 매개 변수로
- 22. 함수 사이의 변수 전달하기
- 23. 함수 사이에 값 전달하기
- 24. Clojure - 목록 매개 변수를 함수 매개 변수로 처리합니다.
- 25. PHPUnit에 매개 변수 전달하기
- 26. 함수 들간의 db 연결 전달하기
- 27. Quartz에서 작업에 매개 변수 전달하기
- 28. JavaScript로 URL 매개 변수 전달하기
- 29. 매개 변수를 사용하여 람다 전달하기
- 30. 빵 부스러기에 매개 변수 전달하기
기호를 전달한다고 가정합니다. 어떻게 그것을 객체로 전송 된 메시지로 "변환"합니까? – EpsilonVector