Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Smalltalk x上升到:y错误_Smalltalk_Squeak - Fatal编程技术网

Smalltalk x上升到:y错误

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

你好!我明天有报告,我正在复习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 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如何不会更改发送消息的对象。而是回答一个适当类型的新对象