本文简要介绍ruby语言中 ENV类
的用法。
ENV
是环境变量的 hash-like 访问器。
与操作系统的交互
ENV
对象与操作系统的环境变量交互:
-
当您在
ENV
中获取名称的值时,将从当前环境变量中检索该值。 -
当您在
ENV
中创建或设置 name-value 对时,名称和值会立即在环境变量中设置。 -
当您删除
ENV
中的 name-value 对时,它会立即从环境变量中删除。
名称和值
通常,名称或值是 String
。
有效的名称和值
每个名称或值必须是以下之一:
无效的名称和值
一个新名字:
-
可能不是空字符串:
ENV[''] = '0' # Raises Errno::EINVAL (Invalid argument - ruby_setenv())
-
可能不包含字符
"="
:ENV['='] = '0' # Raises Errno::EINVAL (Invalid argument - ruby_setenv(=))
新名称或值:
-
可能不是不响应 #to_str 的非字符串:
ENV['foo'] = Object.new # Raises TypeError (no implicit conversion of Object into String) ENV[Object.new] = '0' # Raises TypeError (no implicit conversion of Object into String)
-
可能不包含 NUL 字符
"\0"
:ENV['foo'] = "\0" # Raises ArgumentError (bad environment variable value: contains null byte) ENV["\0"] == '0' # Raises ArgumentError (bad environment variable name: contains null byte)
-
可能没有 ASCII-incompatible 编码,例如 UTF-16LE 或 ISO-2022-JP:
ENV['foo'] = '0'.force_encoding(Encoding::ISO_2022_JP) # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: ISO-2022-JP) ENV["foo".force_encoding(Encoding::ISO_2022_JP)] = '0' # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: ISO-2022-JP)
关于排序
ENV
按操作系统环境变量中的顺序枚举其名称/值对。因此 ENV
内容的顺序是OS-dependent,并且可能是不确定的。
这将出现在:
-
ENV
方法返回的Enumerator
。 -
ENV.keys
、ENV.values
或ENV.to_a
返回的Array
。 -
ENV.inspect
返回的String
。 -
ENV.key
返回的名称。
关于示例
ENV
中的某些方法会返回 ENV
本身。通常,有许多环境变量。在此处的示例中显示大的 ENV
没有用,因此大多数示例片段都是从重置 ENV 的内容开始的:
-
ENV.replace
用新的条目集合替换ENV
。
相关用法
- Ruby ENV.empty?用法及代码示例
- Ruby ENV.delete_if用法及代码示例
- Ruby ENV.inspect用法及代码示例
- Ruby ENV.delete用法及代码示例
- Ruby ENV.to_s用法及代码示例
- Ruby ENV.to_h用法及代码示例
- Ruby ENV.clear用法及代码示例
- Ruby ENV.length用法及代码示例
- Ruby ENV.key用法及代码示例
- Ruby ENV.reject用法及代码示例
- Ruby ENV.values用法及代码示例
- Ruby ENV.select!用法及代码示例
- Ruby ENV.freeze用法及代码示例
- Ruby ENV.rassoc用法及代码示例
- Ruby ENV.invert用法及代码示例
- Ruby ENV.value?用法及代码示例
- Ruby ENV.select用法及代码示例
- Ruby ENV.each_key用法及代码示例
- Ruby ENV.reject!用法及代码示例
- Ruby ENV.keys用法及代码示例
- Ruby ENV.include?用法及代码示例
- Ruby ENV.each_value用法及代码示例
- Ruby ENV.except用法及代码示例
- Ruby ENV[name] =用法及代码示例
- Ruby ENV.values_at用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 ENV类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。