如何在 smalltalk pharo 中实现 getter



我有settersPersongetters如下:

Object subclass: #Person
instanceVariableName: 'name document'
classVariableName ' '
package: 'foo'
name
^name
name: anObject
name:= anObject
document
^document
document: anObject
document:= anObject

然后我在TestPerson中实例化我的类

setUp
p1:= Person name:'Alice' document:='12345'

所以在这里我不明白我如何实现我的 getter 来比较我的名字是否真的是爱丽丝。 例如,在Java中,它将是这样的:

p1.getName().equals("Alice");
p1 name = 'Alice'

你真的需要阅读一本关于Smalltalk的书,你错过了基础知识,"通过堆栈溢出学习"似乎不是最好的方法。

有一个慕课:http://mooc.pharo.org/。
这里有很多免费书籍: http://books.pharo.org
这里有一些免费的一般书籍: http://stephane.ducasse.free.fr/FreeBooks.html
在这里你可以找到更多的一般文档:http://pharo.org/documentation(你可以在那里观看一些介绍性的截屏视频(。

我想解释为什么Esteban的建议很重要,以及为什么在Smalltalk的情况下它是特别好的建议。

许多其他语言使用每个经验丰富的程序员都已经知道的非常基本的编程概念,但这些概念被淹没在特殊语法、边缘情况、异常、多层通常不一致或不相关的详细任意语言设计规则的海洋中。因此,当你学习这些语言时,挑战往往是"我如何在语言Y中做X(你已经知道的简单概念("。

这使得问"我如何在语言Y中做X"(就像你刚才所做的那样(是公平的。 这也使得使用有关该语言的书籍或文档变得困难,因为它们要么会尝试重新教你X(但你已经知道X,你只是想知道如何在Y中做到这一点!(,或者它们将是一长串特殊的提示和技巧,揭示语言Y的所有特殊情况和特质(他们可能会实际上没有涵盖您的特定问题,或者如果他们这样做,您将不容易在材料中找到它(。

Smalltalk是不同的。因为 Smalltalk 是正交构建在非常小、简单且一致的概念和语法设计之上的。 因此,使用Smalltalk,您可以有时间阅读这本书(它很短:语法以适合明信片而闻名,概念同样少且简单(。本书将涵盖大多数和所有特殊情况,因为...大多数情况下都没有任何这种情况。然后,您的知识将普遍适用。它将水平(在系统的所有部分(和垂直(在系统中的最高和最低抽象级别(工作。

能够专注于自己的问题是一种解放的感觉,知道语言支持你并且不会妨碍你,而不是浪费你的精神能量强迫你记住愚蠢的任意事情。

最新更新