相关疑难解决方法(0)

在Ruby中,|| =(or-equals)是什么意思?

以下代码在Ruby中的含义是什么?

||=
Run Code Online (Sandbox Code Playgroud)

它的语法是否有任何意义或原因?

ruby operators

325
推荐指数
9
解决办法
9万
查看次数

Ruby变量赋值中的双管符号?

可能重复:
Ruby中的|| =是什么意思?

请原谅我,如果这是一个新问题,但我正在读一本关于作者在辅助方法中使用此表达式的轨道上的书:

@current_user ||= User.find_by_id(session[:user_id])
Run Code Online (Sandbox Code Playgroud)

这种双管道的使用仍然是一个布尔OR语句吗?

如果是这样,它是如何工作的?

ruby boolean variable-assignment

33
推荐指数
3
解决办法
3万
查看次数

ruby运算符|| =智能吗?

我有一个关于ruby中的|| =语句的问题,这对我来说特别有意义,因为我正在使用它来写入memcache.我想知道的是,是否|| =先检查接收器,看它是否在调用setter之前设置,或者它实际上是别名x = x || y

这在普通变量的情况下并不重要,但使用类似的东西:

CACHE[:some_key] ||= "Some String"
Run Code Online (Sandbox Code Playgroud)

可能会做一个比简单变量集更昂贵的memcache写入.奇怪的是我在ruby api中找不到关于|| =的任何内容,所以我自己无法回答这个问题.

我当然知道:

CACHE[:some_key] = "Some String" if CACHE[:some_key].nil?
Run Code Online (Sandbox Code Playgroud)

会实现这一点,我只是在寻找最简洁的语法.

ruby memcached

17
推荐指数
2
解决办法
1312
查看次数

什么是|| =是什么意思?

可能重复:
Ruby中的|| =(或等于)是什么意思?
什么是|| =是什么意思?

我刚开始学习RubyMotion,在很多例子中我都看到了||=语法.这是什么意思?

这是一个例子:

def window
  @window ||= begin
    w = UIWindow.alloc.initWithFrame UIScreen.mainScreen.bounds
    w.rootViewController = @navigationController
    w
end
Run Code Online (Sandbox Code Playgroud)

搜索符号很困难,谷歌忽略了我的查询中的符号.

ruby

14
推荐指数
1
解决办法
1万
查看次数

什么是|| =在Ruby语言中意味着什么?

可能重复:
Ruby中的|| =是什么意思?

下面的行是什么意思?

a ||= {} 
a ||= 1
Run Code Online (Sandbox Code Playgroud)

在irb中,它总是为上述两行返回a的类,作为哈希.提前致谢.

ruby

8
推荐指数
2
解决办法
3947
查看次数

什么是|| =是什么意思?

我的应用程序控制器中有一个受保护的方法

def current_user
  @current_user ||= User.find_by_id(session[:user_id])
end
Run Code Online (Sandbox Code Playgroud)

我想知道是什么||=意思?我一直试图搜索并找出答案,但无济于事.

ruby

8
推荐指数
2
解决办法
871
查看次数

官方扩展|| =条件赋值运算符

我想强调,我在寻找实际的方式||=操作由红宝石1.9.3解释,它不是如何扩大出现基于其行为进行扩展.我真正希望的是那些已经找到了实际翻译来源的人,这是我可能不满意的任务.我已经发现了一种审查这个问题的唯一资源是过时的:" 甲短路(|| =)边缘情况 ".

我上面提到的资源似乎表明的"官方"扩展x ||= y到x = x || y前1.9在翻译版本或者不准确或马车.在任何情况下,指示的边缘情况似乎已经平滑.上述资源声称x || x = y或x or x = y"更准确".但是,这两者都不正确,因为它们在x以前未声明的全局变量时不起作用:

[11:04:18][****@asha:~]$ irb
1.9.3-p194 :001 > a || a = 3
    NameError: undefined local variable or method `a' for main:Object
1.9.3-p194 :002 > b or b = 3
    NameError: undefined local variable or method `b' for main:Object
1.9.3-p194 :003 > c = c || 3
    => …
Run Code Online (Sandbox Code Playgroud)

ruby

6
推荐指数
1
解决办法
2950
查看次数

5
推荐指数
1
解决办法
592
查看次数

"|| ="操作数在ruby中代表什么?

可能重复:
Ruby中的|| =是什么意思?

我测试过这样:

>> a||=3
=> 3
>> a
=> 3
>> a||=b
=> 3
>> b
NameError: undefined local variable or method `b' for main:Object
    from (irb):11
Run Code Online (Sandbox Code Playgroud)

ruby

1
推荐指数
1
解决办法
1461
查看次数

0
推荐指数
1
解决办法
205
查看次数

标签 统计

ruby ×10

variable-assignment ×2

boolean ×1

memcached ×1

operators ×1