Ric*_*Eng 4 dictionary smalltalk amber-smalltalk
| dict |
dict := #{'foo'->'brown'. 'bar'->'yellow'.
'qix'->'white'. 'baz'->'red'. 'flub'->'green'} asDictionary.
dict at: 'qix'
Run Code Online (Sandbox Code Playgroud)
如果我PrintIt,我得到'白色'.如果我删除'asDictionary',我仍然会'白'.字典给了我一些关联集合不是什么?
表达式#{exp1 . sxp2 . exp3}是特定的amber-smalltalk并创建一个HashedCollection,这是一种特殊的字典,其中键是字符串(可能在Javascript中你经常使用这样的东西).
在其他小方面,没有这样的表达.相反,数组表达式看起来像:( {exp1 . sxp2 . exp3}没有前导#)在吱吱声中被引入,也可以在pharo(这是Squeak的一个分支)和Amber中使用.现在,数组表达式创建了一个数组,因此您必须使用整数作为#at:消息.例如,dict at: 2将返回一个关联,'bar'->'yellow'因为它位于您创建的数组的第二个位置.
#asDictionary是一个集合的方法,它将集合转换为字典,因为集合的元素是关联.因此,如果您想创建一个包含字符串以外的键的字典,您可以这样做:
dict := {
'foo' -> 'brown' .
1 -> 'yellow' .
3 @ 4 -> 'white' .
#(1 2) -> 'red' } asDictionary
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
343 次 |
| 最近记录: |