Anonymous user
Category:Smalltalk: Difference between revisions
→Examples
Line 93:
== Examples ==
As smalltalk code seems to be hard to read for programmers with a C background, some examples are provided here:
=== Literals ==
<lang smalltalk>
"a comment - everything in between double quotes"
"/ an end-of-line comment (dialect specific)
nil "the UndefinedObject singleton object"▼
1234 "integer constant; an instance of Integer"
Line 105 ⟶ 110:
1.234 "float constant; an instance of Float"
'hello' "string constant; an instance of String"▼
#'foo' "symbol constant; similar to symbols in lisp, two symbols are identical if they are equal"▼
$a "character constant"▼
▲true false "the two Boolean singletons"
▲nil "the UndefinedObject singleton object"
(1/7) "fraction constant; an instance of Fraction"
123s3 "fixed point constant with precision (somewhat dialect specific)
▲'hello' "string constant; an instance of String"
▲#'foo' "symbol constant; similar to symbols in lisp, two symbols are identical if they are equal"
#(1 true $a 16rFF 1.0 (10 20)) "array literal constant; the last element being another array; an instance of Array"
#[ 10 20 2r1000 16rFE ] "byte-array literal constant; an instance of ByteArray"
▲$a "character constant"
[ ... some code ... ] "a block literal; an instance of BlockClosure (dialect specific); the object represents the piece of code which can be passed around and evaluated later (a lambda closure)"
[:a1 ... :aN | ... some code ...] "a block literal with arguments."
</lang>
===Message Sends===
<lang smalltalk>
1000 factorial "send the 'factorial' message to the integer receiver"
Line 145 ⟶ 149:
...
b value "evaluate the block's code"
</lang>
=== Other ===
<lang smalltalk>
foo := bar "assignment; let foo refer to the object to which bar refers to (at that particular point in time)"
^ a + 1 "return; the value of the 'a+1' message send is returned as the
'hello' print. 'world' print "statements are separated by a period; just like in english"
|a b c| "local variables; introduces 'a', 'b' and 'c' in the current scope (let-like local bindings)"
</lang>
|