如何仅在GNU Smalltalk上获取密钥?

如何仅在GNU Smalltalk上获取密钥?,smalltalk,gnu-smalltalk,Smalltalk,Gnu Smalltalk,我目前正在使用sortedCollection,它存储字符字典(键)和该字符的出现次数(值)。在遍历sortedCollection时,如何仅访问键值 e、 g [que last notNil]同时:[ stdout假设que是一个排序的集合,每个元素都与字符作为键、计数作为值相关联,就像在[$a:20,$e:100]示例中一样,您可以这样做: que do: [:each | stdout << 'current character is ' << each key

我目前正在使用sortedCollection,它存储字符字典(键)和该字符的出现次数(值)。在遍历sortedCollection时,如何仅访问键值

e、 g

[que last notNil]同时:[

stdout假设
que
是一个排序的集合,每个元素都与字符作为键、计数作为值相关联,就像在
[$a:20,$e:100]
示例中一样,您可以这样做:

que do: [:each | stdout << 'current character is ' << each key
                        << ' and occurs ' << each value << ' times.' << nl]

que do:[:each | stdout您没有展示如何构建集合que,但似乎要检索键和值,您应该使用SortedDictionary或关联的排序集合对不起,
que
定义如下:
que=sortedCollection new.
que:=add:nodeLeaf.
where
nodeLeaf:=Dictionary new.
和迭代
键和值do
,它有字符和出现次数我知道字典还没有排序,但我想我看到了如何在不同的帖子上按值排序字典,所以我会先试试。@selfPointer你能用你的实际代码更新问题吗?例如,没有提到keysAndValuesDo:在你的问题中你是如何使用它的。你是说
que
是一个分类的字典集合?
que do: [:each | stdout << 'current character is ' << each key
                        << ' and occurs ' << each value << ' times.' << nl]
characters := 'hello world' asBag.
characters asSet do: [:each |
    stdout << 'current character is ' << each
           << ' and occurs ' << (characters occurrencesOf: each) 
           << ' times.' << nl]