在Smalltalk中定义double大于号(>>)的方法

Dom*_*mon 5 smalltalk gnu-smalltalk

在Kent Beck的Smalltalk Best Practice Patterns一书中,双更大符号(>>)用于定义这样的方法:

Point class>>x: xNumber y: yNumber
    ^self new
        setX: xNumber
        y: yNumber

Point>>setX: xNumber y: yNumber
    x := xNumber.
    y := yNumber.
    ^self
Run Code Online (Sandbox Code Playgroud)

但是,我无法在GNU Smalltalk中运行它.

在Smalltalk的某些实现中它是有效的语法吗?或者它只是一种伪代码?

Use*_*ser 5

实际上这是伪代码.

在其他语言中,您可以使用它.来告诉人们该方法在此类中,但在您编写的smalltalk中>>

你会做的像Smalltalk的什么佳乐菲罗

Point class>>x: xNumber y: yNumber
    ^self new
        setX: xNumber
        y: yNumber
Run Code Online (Sandbox Code Playgroud)
  1. 打开系统浏览器
  2. 点击课堂上的一个按钮,它会显示课程的班级.
  3. 使用源代码粘贴文本区域中的方法:

    x: xNumber y: yNumber
        ^self new
            setX: xNumber
            y: yNumber
    
    Run Code Online (Sandbox Code Playgroud)
  4. Strg -s保存代码

对于

Point>>setX: xNumber y: yNumber
    x := xNumber.
    y := yNumber.
    ^self
Run Code Online (Sandbox Code Playgroud)

你会做同样但不使用课程方面