作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
当使用 RBConfig 确定我的 ruby 版本时,我在使用 ruby 1.9.3 时得到“错误”的小版本:
# ruby -v
ruby 1.9.3p286 (2012-10-12 revision 37165) [i686-linux]
# ruby -rrbconfig -e 'puts RbConfig::CONFIG.fetch(%q(MAJOR))'
1
# ruby -rrbconfig -e 'puts RbConfig::CONFIG.fetch(%q(MINOR))'
9
# ruby -rrbconfig -e 'puts RbConfig::CONFIG.fetch(%q(TEENY))'
1
使用 Ruby 1.8.7 - 这工作正常:
$ ruby -v
ruby 1.8.7 (2012-06-29 patchlevel 370) [x86_64-linux]
$ ruby -rrbconfig -e 'puts Config::CONFIG.fetch(%q(MAJOR))'
1
$ ruby -rrbconfig -e 'puts Config::CONFIG.fetch(%q(MINOR))'
8
$ ruby -rrbconfig -e 'puts Config::CONFIG.fetch(%q(TEENY))'
7
我知道我可以获得 patchlevel 并稍微使用它,但为什么 ruby 1.9.3 返回 1 作为它的小版本?
最佳答案
Ruby 有两个版本概念:实际发布版本和“兼容版本”。对于所有 Rubies 1.9.1 -> 1.9.3,兼容版本为 1.9.1
,因为它们都向后兼容 1.9.1
版本。
RUBY_VERSION
常量包含发布版本号,但如果这些值对您很重要,您需要拆分点以获得 MAJOR、MINOR 和 TEENY:
>> major, minor, teeny = RUBY_VERSION.split(".")
=> ["1", "9", "3"]
>> teeny
=> "3"
也就是说,Ruby 版本号专门设计为可与 ASCII 进行比较,因此通常会看到这样的代码来进行简单的版本检查:
if RUBY_VERSION >= "1.9.3"
#...
end
补丁级别通常可以忽略,因为补丁级别版本中没有 API 更改,只有错误修复和安全补丁。希望对您有所帮助!
关于Ruby 1.9.3 Teeny 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13273773/
当使用 RBConfig 确定我的 ruby 版本时,我在使用 ruby 1.9.3 时得到“错误”的小版本: # ruby -v ruby 1.9.3p286 (2012-10-12 rev
我是一名优秀的程序员,十分优秀!