Smalltalk x上升到:y错误
你好!我明天有报告,我正在复习Smalltalk。我试图使用Smalltalk x上升到:y错误,smalltalk,squeak,Smalltalk,Squeak,你好!我明天有报告,我正在复习Smalltalk。我试图使用raisedTo:方法,但它给出了以下错误: MessageNotUnderstood: Character>>raisedTo: 这是我的密码: |x y z| x := UIManager default request: 'P1: '. y := UIManager default request: 'P2: '. z := x raisedTo: y. self inform: z. 请尝试以下操作: |x y
raisedTo:
方法,但它给出了以下错误:
MessageNotUnderstood: Character>>raisedTo:
这是我的密码:
|x y z|
x := UIManager default request: 'P1: '.
y := UIManager default request: 'P2: '.
z := x raisedTo: y.
self inform: z.
请尝试以下操作:
|x y z|
x := UIManager default request: 'P1: '.
y := UIManager default request: 'P2: '.
z := x asNumber raisedTo: y asNumber.
self inform: z asString.
注意选择器asNumber和asString如何将对象转换为正确的类型
Smalltalk是动态类型的,但这并不意味着您可以将任何类型的对象传递给方法
您的代码在x上执行#raisedTo:。但是,x是一个字符串,而不是实现了#raisedTo:的Number的子类。因此,初始错误是由于字符串不理解#raisedTo:。(您可以使用“工具”菜单下的“方法查找器”检查#raisedTo:在何处实现。)我通过将#asNumber发送到x来纠正这一点
同样,您发送给#raisedTo:的参数也必须是数字。这里的修正是相同的;将#asNumber发送给y
最后,#inform:需要字符串,而不是数字。这里的更正是将#asString发送到数字
请注意#astring和#asNumber如何不会更改发送消息的对象。而是回答了一个适当类型的新对象。请尝试以下操作:
|x y z|
x := UIManager default request: 'P1: '.
y := UIManager default request: 'P2: '.
z := x asNumber raisedTo: y asNumber.
self inform: z asString.
注意选择器asNumber和asString如何将对象转换为正确的类型
Smalltalk是动态类型的,但这并不意味着您可以将任何类型的对象传递给方法
您的代码在x上执行#raisedTo:。但是,x是一个字符串,而不是实现了#raisedTo:的Number的子类。因此,初始错误是由于字符串不理解#raisedTo:。(您可以使用“工具”菜单下的“方法查找器”检查#raisedTo:在何处实现。)我通过将#asNumber发送到x来纠正这一点
同样,您发送给#raisedTo:的参数也必须是数字。这里的修正是相同的;将#asNumber发送给y
最后,#inform:需要字符串,而不是数字。这里的更正是将#asString发送到数字
请注意#astring和#asNumber如何不会更改发送消息的对象。而是回答一个适当类型的新对象