当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby ENV.fetch用法及代码示例


本文简要介绍ruby语言中 ENV.fetch 的用法。

用法

fetch(name) → value
fetch(name, default) → value
fetch(name) { |name| block } → value

如果 name 是环境变量的名称,则返回其值:

ENV['foo'] = '0'
ENV.fetch('foo') # => '0'

否则,如果给出了一个块(但不是默认值),则向该块生成 name 并返回该块的返回值:

ENV.fetch('foo') { |name| :need_not_return_a_string } # => :need_not_return_a_string

否则,如果给出了默认值(但不是块),则返回默认值:

ENV.delete('foo')
ENV.fetch('foo', :default_need_not_be_a_string) # => :default_need_not_be_a_string

如果环境变量不存在并且同时给出了 default 和 block,则发出警告(“警告:block 取代默认值参数”),产生 name 给该块,并返回该块的返回值:

ENV.fetch('foo', :default) { |name| :block_return } # => :block_return

如果 name 有效但未找到,则引发 KeyError ,并且既没有给出默认值也没有给出块:

ENV.fetch('foo') # Raises KeyError (key not found: "foo")

如果 name 无效,则引发异常。请参阅无效名称和值。

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 ENV.fetch。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。