我是 Ruby 新手
我找到了下面我想理解的代码。
1) 我知道初始化函数中的第一个 hash
是一个参数。这里的hash
也是关联数组吗?
2) hash['FILENAME']
中的第二个散列 - 这是使用函数 def 中的参数,还是定义一个新的散列(即关联数组)?
3) 我假设 self.myfilename
设置为元素值为 'FILENAME'
的数组?
4) 为什么要有|| “”
?
require 'rex/socket'
require 'rex/proto/dhcp'
module Rex
module Proto
module DHCP
Class Server
include Rex::Socket
def initialise(hash, context={})
...
self.myfilename = hash['FILENAME'] || ""
...
最佳答案
欢迎使用 ruby !
1)你就在这里。 context
的默认值为 {}
。
2) 它使用赋予函数的 hash
参数并获取它的 FILENAME
键。
3) self.myfilename
等于 hash
变量的 FILENAME
键的值。
4) 如果哈希值不包含 key ,则返回nil
。所以这里|| ""
将 self.myfilename
设置为空字符串,而不是 nil
。
关于arrays - 在函数定义和变量赋值中使用 "hash",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38042675/