麻烦帮忙看一段RUBY代码

来源:百度知道 编辑:UC知道 时间:2024/07/08 08:18:40
麻烦帮忙看一段RUBY代码:

module MIO
def MIO.add_prefix(devHash)
puts devHash
devHash.each do |dir,devNameList|
puts devNameList
end
end
Devices = add_prefix({
"x" => [
"eI",
"eplus "
],

"r" => [
"pXI ",
],
"c" => [
"1 ",
]
})
end

运行后信息是:
xeIeplus c1 rpXI
eI
eplus
1
pXI

问题一共有3个:
1)MODULE有啥用?
2)devHash是怎么排序的。为何c1比rpXI先出现?
3)devHash.each do |dir,devNameList|中DIR是啥意思?
谢谢。

module 是模块吧 一块一块的

回答:
1)module是模块声明,简单来说,模块提供了将常量,类,方法放在一起的手段,可以用模块来提供mixin功能,也就是多重继承。需要注意的是,模块不能生成实例。
2)ruby中Hash表在赋值的时候会进行排序,不会按顺序输出,也就是说默认Hash 有可能不会按指定的顺序输出,是无序的。
3)|...|中的是ruby代码块的参数列表,dir对应了Hash表的key,同理,devNameList则对应了Hash表的value。