簡體   English   中英

如何在smalltalk pharo中實現getter

[英]How to implement getter in smalltalk pharo

我有這樣的settersgetters類的Person類:

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 來比較我的名字是否真的是 Alice。 例如在 Java 中它會是這樣的:

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

你真的需要閱讀一本關於 Smalltalk 的書,你缺少基礎知識,“通過堆棧溢出學習”似乎不是最好的方法。

有一個 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,您可以花時間閱讀本書(它很短:語法非常適合明信片,而且概念同樣少而簡單)。 這本書將涵蓋大多數和所有的特殊情況,因為……大多數情況下沒有這樣的情況。 然后,您的知識將普遍適用。 它將水平(在系統的所有部分)和垂直(在系統中的最高和最低抽象級別)工作。

能夠專注於自己的問題,知道語言支持你並且不會妨礙你,而不是浪費你的精神能量迫使你記住愚蠢的任意事情,這是一種解放的感覺。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM