Smalltalk 当以字符串形式给出方法名称时,如何调用Squeak方法?

Smalltalk 当以字符串形式给出方法名称时,如何调用Squeak方法?,smalltalk,squeak,Smalltalk,Squeak,当以字符串形式给出方法名称时,如何调用Squeak方法? 有可能吗?试试: perform: aSymbol perform: aSymbol with: anObject perform: aSymbol withArguments: anArrayOfArguments 其中aSymbol是您的方法选择器。 例如,您可以编写以下内容,而不是1+2: 1 perform: #+ with: 2 如果方法选择器存储为字符串,则必须首先将其转换为符号: 1 perform: '+' asSym

当以字符串形式给出方法名称时,如何调用Squeak方法? 有可能吗?

试试:

perform: aSymbol
perform: aSymbol with: anObject
perform: aSymbol withArguments: anArrayOfArguments
其中aSymbol是您的方法选择器。 例如,您可以编写以下内容,而不是
1+2

1 perform: #+ with: 2
如果方法选择器存储为
字符串
,则必须首先将其转换为
符号

1 perform: '+' asSymbol with: 2

5 perform: 'raisedTo:modulo:' asSymbol withArguments: #(2 3)
尝试:

其中aSymbol是您的方法选择器。 例如,您可以编写以下内容,而不是
1+2

1 perform: #+ with: 2
如果方法选择器存储为
字符串
,则必须首先将其转换为
符号

1 perform: '+' asSymbol with: 2

5 perform: 'raisedTo:modulo:' asSymbol withArguments: #(2 3)

我的字符串包含一个名称而不是一个字符,因此它无法帮助我转换为符号..thanxanyway@Shiran最后我又添加了一个示例。看看是否有道理。否则,我不理解你在Smalltalk中关于“包含名称而不是一个字符”的评论。@Shiran a
符号是唯一的
字符串
,不要与
字符
混淆。唯一字符串的意思是:
“a String”asSymbol==“a String”asSymbol
。我的字符串包含一个名称而不是一个字符,因此无法帮助我转换为符号..thanxanyway@Shiran最后我又添加了一个示例。看看是否有道理。否则,我不理解你在Smalltalk中关于“包含名称而不是一个字符”的评论。@Shiran a
符号是唯一的
字符串
,不要与
字符
混淆。唯一字符串的意思是:
'a String'asSymbol=='a String'asSymbol