2014-12-10 1 views
1

Smalltalk에서 개체 A가 있고 특정 동작을 컴파일하는 메서드를 재정의하고 싶습니다.동작의 메서드 재정의 -smalltalk-

내 목표는 코드를 컴파일하기 전에 assert를 추가하여 컴파일 방법을 사용자 정의하는 것입니다.
나는 컴파일이 A 클래스에서 발견된다는 것을 알고 있지만 (어떻게 동작 할까?) 어떻게 사용할 수 있습니까?

내가 아닌 작업하는 방법을 많이 시도, 내가 무슨 짓을했는지의 마지막은 다음과 같습니다

컴파일 : 코드 자체 클래스 컴파일 : 코드 내가하는 방법을 정의했다. "이것이 작동하지 않는다는 것은 메시지가 이해되지 않는다는 것을 알려줍니다."

어떻게하면됩니까?

+0

중복 된 https://stackoverflow.com/questions/27386061/overriding-compile-method-in-squeak – Uko

답변

2

[Pharo] 클래스의 클래스면에서 #compile : classified : withStamp : notifying 메소드를 재정의하십시오. 이 새로운 구현에서는 어설 션 코드를 첫 번째 매개 변수 (컴파일하려는 소스 코드)와 결합한 다음 수정 된 코드로 슈퍼에 위임합니다.