如何在smalltalk pharo中实现getter
How to implement getter in smalltalk pharo
我有 class Person
我的 setters
和 getters
是这样的:
Object subclass: #Person
instanceVariableName: 'name document'
classVariableName ' '
package: 'foo'
name
^name
name: anObject
name:= anObject
document
^document
document: anObject
document:= anObject
然后我在 TestPerson
中实例化 class
setUp
p1:= Person name:'Alice' document:='12345'
所以在这里我不明白如何实现我的 getter 来比较我的名字是否真的是爱丽丝。
例如在 Java 中会是这样的:
p1.getName().equals("Alice");
p1 name = 'Alice'
你真的需要读一本关于 Smalltalk 的书,你缺少基础知识,"learning by stack overflow" 似乎不是最好的方法。
有一门 MOOC: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,您 可以 花时间阅读这本书(它很短:著名的语法适合明信片,概念同样少而简单)。这本书将涵盖大部分和所有的特殊情况,因为......大多数情况下都没有这样的情况。然后你的知识将普遍适用。它将水平(在系统的所有部分)和垂直(在系统的最高和最低抽象级别)工作。
能够专注于自己的问题是一种解放的感觉,知道语言会支持你,不会妨碍你,而不是浪费你的精力,强迫你记住愚蠢的任意事情。
我有 class Person
我的 setters
和 getters
是这样的:
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 的书,你缺少基础知识,"learning by stack overflow" 似乎不是最好的方法。
有一门 MOOC: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,您 可以 花时间阅读这本书(它很短:著名的语法适合明信片,概念同样少而简单)。这本书将涵盖大部分和所有的特殊情况,因为......大多数情况下都没有这样的情况。然后你的知识将普遍适用。它将水平(在系统的所有部分)和垂直(在系统的最高和最低抽象级别)工作。
能够专注于自己的问题是一种解放的感觉,知道语言会支持你,不会妨碍你,而不是浪费你的精力,强迫你记住愚蠢的任意事情。