在Ruby中,我试图写一行,如果已经设置了变量,则使用该变量,否则默认为某个值:

myvar = # assign it to ENV['MY_VAR'], otherwise assign it to 'foobar'

我可以这样写代码:

if ENV['MY_VAR'].is_set? #whatever the function is to check if has been set
  myvar = ENV['MY_VAR']
else
  myvar = 'foobar'
end

但这相当冗长,我正试图用最简洁的方式来写.我该怎么做?

推荐答案

myvar = ENV['MY_VAR'] || 'foobar'

注意:这有点不正确(如果散列可以包含值nil),但由于ENV只包含字符串,所以可能就足够了.

Ruby相关问答推荐

ruby 3.1:使用方法(:名称)简化代码莫名其妙地失败

如何查询哪些RuboCop规则适用于文件?

Rack并发 - rack.multithread、async.callback 或两者兼而有之?

ri 和 rdoc 有什么区别

.nil?、.blank? 之间的区别?和.empty?

需要在Ruby中将数组拆分为指定大小的子数组

出于调试目的,如何打印有关 NET:HTTPRequest 的信息?

在 RSpec-2.11 中使用隐含的 `subject` 和 `expect`

在 Ruby 中,获取第一个块返回 true 的可枚举元素的最快方法是什么?

如何在 Ruby 中使用 (n) 诅咒?

将haml标签放入link_to helper

如何设置方法测试中使用的私有实例变量?

如何在 ruby​​ 中进行命名捕获

Ruby中block和&block的区别

如何使用 RVM 更新 Ruby 解释器?

我们什么时候在 Rails 中使用 "||=" 运算符?它的意义是什么?

Ruby 方法to_sym有什么作用?

获取当前 ruby​​ 进程内存使用情况

如何在 Ruby 中获取堆栈跟踪对象?

相当于 Ruby 的 cURL?