[英]Get sender of a message in Smalltalk
有沒有一種實用的方法可以在Smalltalk中獲取消息的發件人, 而無需手動將self作為參數傳遞 ?
更具體地講:我想在傳遞給我的類的ID上添加特定於類的前綴,因此,如果ClassA發送(在類端)
ClassB doSomethingWith: 'myId'.
ClassB應該在內部將“ myId”視為“ ClassB-myId”或類似名稱。
我已經用一個必須是self的附加參數實現了它
ClassB doSomethingWith: 'myId' for: self.
但是如果沒有這種明確的自我解決方案,我會很高興。
您可以在執行堆棧上使用反射功能:
thisContext sender receiver
thisContext
回答當前的堆棧幀 sender
回答父堆棧幀 receiver
回答堆棧幀的接收方 這應該可以在Pharo,VisualWorks和GemStone中使用。 其他Smalltalk可能使用不同的方法名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.