Leo*_*Leo 1 oop smalltalk squeak
是否有一种实用的方法可以在Smalltalk中获取消息的发送者而无需手动将self作为参数传递?
更具体一点:我想为传递给我的类的ID添加一个特定于类的前缀,所以如果ClassA发送(在类侧)
ClassB doSomethingWith: 'myId'.
Run Code Online (Sandbox Code Playgroud)
ClassB应该在内部将'myId'视为'ClassB-myId'或类似的东西.
我用一个必须是self的附加参数实现了这一点
ClassB doSomethingWith: 'myId' for: self.
Run Code Online (Sandbox Code Playgroud)
但如果没有这种明确的自我发送解决方案,我会很高兴.
您可以使用执行堆栈上的反射工具:
thisContext sender receiver
thisContext 回答当前的堆栈帧sender 回答父堆栈框架receiver 回答堆栈帧的接收器这应该适用于Pharo,VisualWorks和GemStone.其他Smalltalk可能使用不同的方法名称.
| 归档时间: |
|
| 查看次数: |
671 次 |
| 最近记录: |