大佬教程收集整理的这篇文章主要介绍了ruby – 为什么Gemfile语义版本控制运算符(〜>)会产生一个数字不一致的结果?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我经常看到它可以被解读为:
"~> 3.1" => "Any version 3.x,but at least 3.1" "~> 3.1.1" => "Any version 3.1.x,but at least 3.1.1"
但是有一个数字,这个规则就会崩溃:
"~> 3" => "Any version x,but at least 3" *NOT TRUE!* "~> 3" => "Any version 3.x" *True. But why?*
如果我想要“任何版本3.x”,我可以使用“〜> 3.0”,这是一致的.就目前而言,这种操作在一个数字上的变化是不一致的,没有记录.
此外,如果我想说“任何高于或等于3的版本”(所以3.x,4.x等…)我很想使用“> =”运算符,我们被告知is evil.
这种行为有原因吗?
编辑:
我将这个给大卫找到rubygems中的罪魁祸首文件.有一个“功能”无声地将“3”扩展为“3.0”(Line 148 in version.rb:“单个数字版本会自动扩展为零以产生合理的结果.”)
我必须说我不同意结果是明智的,因为它打破了预期的顺序,并阻止能够用该运算符说“任何版本x,但至少3”.因此,无论如何,我们被迫进入> =的哪个指南.rubygems.org warns us not to use.也许这篇文章将作为我一直在寻找的文档……
它也有意义.作为〜> v.r只是不平等的语法糖
v.r< = current_version.current_release< (第1节).0 如果只有一个版本号,那么上限是多少?是的,∞(无穷大),所以没有必要为什么它应该工作.你可以简单地把它写成> = v.
以上是大佬教程为你收集整理的ruby – 为什么Gemfile语义版本控制运算符(〜>)会产生一个数字不一致的结果?全部内容,希望文章能够帮你解决ruby – 为什么Gemfile语义版本控制运算符(〜>)会产生一个数字不一致的结果?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。