我使用 windows cmd 而不是 eclipse IDE。我将展示我用来查找代码错误并最终修复它们的步骤。DLTK 插件在这里没有错。模块文件和测试脚本在同一个文件夹中。
LESSON -模块中的模块名称和常量名称必须以大写字母开头。为什么,我不知道。
aModule.rb
module aModule
aConstant = 7
end
测试.rb
require 'aModule'
puts aModule::aConstant
cmd: cd 进入 Test.rb 文件夹和ruby Test.rb
错误: ``require': cannot load such file -- tokenizer.rb (LoadError)`
help: Ruby 'require' error: cannot load such file
Ruby 1.9 已从加载路径中删除了当前目录,因此您需要对该文件执行相对要求,正如 Pascal 所说:
require './tokenizer'
无需使用 .rb 作为后缀,因为 Ruby 足够聪明,无论如何都知道这就是您的意思。
我做了以下更改:
测试.rb
require './aModule'
puts aModule::aConstant
cmd: ruby Test.rb
error: class/module name must be CONSTANT (SyntaxError)
in aModule.rb
help: NameError in Ruby
我做了以下更改:
aModule.rb
module AModule # capital
aConstant = 7
end
测试.rb
require './AModule'
puts AModule::aConstant
cmd: ruby Test.rb
错误: undefined method 'aConstant' for AModule:Module (NoMethodError)
帮助:使用了上面的链接。我认为常量也必须用大写命名。
最终工作代码:
aModule.rb
module AModule # capital
AConstant = 7 # capital
end
测试.rb
require './AModule'
puts AModule::AConstant
WTF 是这样的 Ruby 吗???./
当模块名称与测试脚本位于同一文件夹中时,为什么我需要在模块名称之前附加?