arrays - 在函数定义和变量赋值中使用 "hash"

标签 arrays ruby variables hash network-programming

我是 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/

相关文章:

javascript - 使用 js 渲染 html 是一种不好的做法吗?

javascript - 查找数组中最长的单词/字符串

ios - Swift 2-如果值在当前日期之前,则删除数组中的NSDate值

ruby - 从方法内部的 block 方法返回 true 或 false

ruby - ruby 中 "&: "运算符的功能是什么?

node.js - Azure Pipelines 中的变量可以用在 NodeJS 代码中吗?

delphi - 使用查询组件“无法将类型(Null)的变体转换为类型(OleStr)”,以提取数据供以后使用

arrays - 向程序员解释嵌套数组

ruby-on-rails - vim 中的 Ruby 语法检查

c - C 中最精确的 var 类型是什么,以及如何打印它