![]() |
1
76
最明显的方法是简单地检查方法的每个步骤:
使用nIL?只在使用false作为占位符值时才需要,实际上很少需要这样做。一般来说,您可以简单地测试它是否存在。
如果没有,您还可以定义自己的hash“dig”方法,它可以大大简化这一过程:
此方法将检查方法的每个步骤,并避免在调用nil时出错。对于浅层结构,实用程序有点有限,但对于深嵌套结构,我发现它非常宝贵:
您还可以使其更加健壮,例如,测试是否实际填充了:children条目:
|
![]() |
2
20
使用Ruby2.3,我们将支持安全导航操作员: https://www.ruby-lang.org/en/news/2015/11/11/ruby-2-3-0-preview1-released/
|
![]() |
3
13
另一种选择:
|
![]() |
4
4
你可以使用
您可以在以下网址找到进一步的解释: http://andand.rubyforge.org/ . |
![]() |
5
2
可以使用默认值为-空哈希的哈希。例如,
也适用于已创建的哈希:
或者可以为nil类定义[]方法
|
![]() |
6
2
传统上,你必须这样做:
然而,Ruby2.3添加了一个使这种方式更加优雅的特性:
有一块宝石叫
|
![]() |
7
1
请注意,在Rails中,您还可以执行以下操作:
|
![]() |
8
1
下面是一种方法,您可以在不修补Ruby哈希类的情况下,对哈希和任何嵌套哈希中的任何错误值进行深入检查(请不要修补Ruby类,这是您永远不应该做的事情)。 (假设使用Rails,尽管您可以轻松地将其修改为在Rails之外工作)
|
![]() |
9
1
这将把所有的散列展开成一个,然后呢?如果存在与子字符串“children”匹配的任何键,则返回true。 这也可能有帮助。 |
![]() |
10
1
简化上述答案: 创建一个值不能为零的递归哈希方法,如下所示。
如果您不介意为键()创建空哈希值,请执行以下操作: |
![]() |
11
0
你可以试着玩
或例如:
这样你就可以打电话了
|
![]() |
12
0
鉴于
你可以检查 X 和 Y 这样地:
|
![]() |
13
0
泰德曼回答。 对于那些想要性能(并且坚持使用Ruby<2.3)的人来说,这种方法快了2.5倍:
如果你使用 RubyInline ,此方法快16倍:
|
![]() |
14
0
您还可以定义一个模块来对方括号方法进行别名,并使用Ruby语法来读/写嵌套元素。 更新:不是重写括号访问器,而是请求哈希实例扩展模块。
然后你可以做:
|
![]() |
15
0
我不知道这是什么“红宝石”!)但是 KeyDial 我写的gem可以让您在不改变原始语法的情况下完成这项工作:
变成:
这使用了一些技巧来中介密钥访问调用。AT
|
|
AlwaysneedsHelp · 如何减少此处使用的内存量? 1 年前 |
![]() |
snake123 · 滚动到不同页面的锚点,URL中没有# 1 年前 |
![]() |
Jan · 密码salt是否应存储在数据库中 1 年前 |
![]() |
birb · RFC-6238 TOTP实现与示例不匹配 1 年前 |
![]() |
AishaWho · 请解释res=id^(id>>>32) 1 年前 |
![]() |
Jahongir Rahmonov · 计算文件的校验和 7 年前 |