小编Rek*_*kha的帖子

具有多个参数的 Pharo 方法

我正在创建一个带有 3 个参数的 Pharo 类方法。我正在使用以下代码,它给了我错误“预期的变量或表达式..”

    MethodName: arg1:argValue1 arg2:argValue2
    ^ self var1: argValue1 var2: self var3: argValue2
Run Code Online (Sandbox Code Playgroud)

正确的方法声明语法是什么?稍后,我打算像下面这样调用这个方法:

    ClassName var1: argValue1 var2: self var3: argValue2
Run Code Online (Sandbox Code Playgroud)

pharo

5
推荐指数
1
解决办法
3604
查看次数

Pharo 4.0中的类和实例变量和方法的语法

我在线学习Pharo并且不确定我是否正确创建类和实例变量的语法.如果我错了,请纠正我: -

在Pharo的类侧创建的类(静态)方法,其中name,email,phone是CreateUser类的实例变量:

createNewUser:Arguments name:userName email:userEmail phone:userPhone
Run Code Online (Sandbox Code Playgroud)

要调用CreateUser类的静态方法,我将执行以下操作: -

CreateUser 
     name:userName
     email:userEmail
     phone:userPhone
Run Code Online (Sandbox Code Playgroud)

如果我想通过此名称创建实例变量,则方法声明将与上面完全相同,但它将位于类的实例端.但是,当我调用该方法时,我将使用关键字"new"来调用它来创建一个新实例,如下所示:

CreateUser new
     name:userName
     email:userEmail
     phone:userPhone
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码并静态调用此方法时,我收到一条错误消息: -

MessageNotUnderstood: CreateUser class >>name:email:phone:
Run Code Online (Sandbox Code Playgroud)

但是,当我去CreateUser类重新检查时,我看到上面的方法在类侧创建为:

CreateUser:name:email:phone:
Run Code Online (Sandbox Code Playgroud)

我的疑问如下:1.我上面做错了什么?我该如何解决上述错误?2.使用静态变量/方法与类变量/方法背后的概念与Java相同?3.如果我想访问上面的实例变量,我可以为类/实例添加访问器方法,然后使用类实例/类对象实例调用它们.那是对的吗?

您将给予的任何帮助将不胜感激!首先十分感谢.

smalltalk pharo

4
推荐指数
1
解决办法
2342
查看次数

标签 统计

pharo ×2

smalltalk ×1