我是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)
设置返回空.
是什么赋予了?为什么使用常量使这个工作?