如果将方法名称作为字符串,我如何调用Squeak方法? 有可能吗?
答案 0 :(得分:6)
尝试:
perform: aSymbol
perform: aSymbol with: anObject
perform: aSymbol withArguments: anArrayOfArguments
其中aSymbol是您的方法选择器。
例如,您可以写下1 + 2
代替:
1 perform: #+ with: 2
如果您的方法选择器存储为String
,则必须先将其转换为Symbol
:
1 perform: '+' asSymbol with: 2
5 perform: 'raisedTo:modulo:' asSymbol withArguments: #(2 3)