Smalltalk 当以字符串形式给出方法名称时,如何调用Squeak方法?
当以字符串形式给出方法名称时,如何调用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
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
。