各种语言实现迭代器的方式皆不尽同,有些面向对象语言像Java,C#,Ruby,Python,Delphi都已将迭代器的特性内置语言当中,完美的跟语言集成,我们称之隐式迭代器,但像是C++语言本身就没有迭代器的特色,但STL仍利用模板实现了功能强大的迭代器。STL容器的数据的内存地址可能会重新分配,与容器绑定的迭代器仍然可以定位到重新分配后的正确的内存地址。
迭代器另一方面还可以集成生成器。
在 ruby 中,{|args| statements} 叫做 匿名函数,就是没有名字的小型函数。然后 each_byte 是一个方法,它接收一个可调用对象。有时候左花括号可以用 do 代替,有花括号用 end 代替,就是
do |args|
statements
end
这种形式。
字面量方式创建哈希
clear 方法可以清除哈希里面的数据
delete delete_if 可以删除和删除指定条件的键值对
reject reject! 也可以删除指定的键值对
invert 方法可以用来颠倒键值对
keys values 可以获取键值的集合
has_key? has_value? 方法可以检测哈希中是否包含指定的键值
each each_key each_value 用于迭代哈希
merge merge! 用来合并两个哈希
symbolize_keys symbolize_keys! 方法用来将所有的键转换为 symbol
按键排升序降序
按值排升序降序