簡體   English   中英

在Smalltalk中獲取消息的發件人

[英]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

  1. thisContext回答當前的堆棧幀
  2. sender回答父堆棧幀
  3. receiver回答堆棧幀的接收方

這應該可以在Pharo,VisualWorks和GemStone中使用。 其他Smalltalk可能使用不同的方法名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM