小编t3k*_*oid的帖子

Ruby定义的奇怪行为?

我是Ruby的新手,对定义有疑问?关键词.

这是我编写的一段代码,用于加载yaml文件以初始化我的Ruby脚本中的设置:

# Read settings file
require 'YAML'
settingsFile = File.join(File.dirname(__FILE__), "settings.yml").tr('\\', '/')
Settings = YAML.load_file(settingsFile) unless defined? Settings
puts Settings
Run Code Online (Sandbox Code Playgroud)

yaml文件如下所示:

Hello: World
Run Code Online (Sandbox Code Playgroud)

这输出正确:

{ "你好"=> "世界"}

现在,如果我使用变量而不是常量来存储设置,例如:

# Read settings file
require 'YAML'
settingsFile = File.join(File.dirname(__FILE__), "settings.yml").tr('\\', '/')
settings = YAML.load_file(settingsFile) unless defined? settings
puts settings
Run Code Online (Sandbox Code Playgroud)

设置返回空.

是什么赋予了?为什么使用常量使这个工作?

ruby settings yaml defined

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

标签 统计

defined ×1

ruby ×1

settings ×1

yaml ×1