Indexer (programming): Difference between revisions

Content deleted Content added
Add Rust example
Dmt137 (talk | contribs)
Implementations: Smalltalk example
Line 176:
assert_eq!(nucleotide_count[Nucleotide::G], 10);
assert_eq!(nucleotide_count[Nucleotide::T], 12);
</syntaxhighlight>
 
=== Smalltalk ===
In [[Smalltalk]] one can emulate indexing by (e.g.) defining the {{smalltalk|get:}} and {{smalltalk|set:value:}} instance methods. For example, in [[GNU Smalltalk]],
<syntaxhighlight lang="smalltalk">
Object subclass: vector [ |data| ]
vector class extend [ new: n [ |v| v:=super new. v init: n. ^v] ]
vector extend [ init: n [ data:= Array new: n ] ]
vector extend [ size [ ^(data size) ] ]
vector extend [ get: i [ ^(data at: i) ] ]
vector extend [ set: i value: x [ data at: i put: x ] ]
v:=vector new: 3
1 to: (v size) do: [:i| v set: i value: (i+1) ]
1 to: (v size) do: [:i| (v get: i) printNl ]
</syntaxhighlight>