问题标签 [ruby-2.4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arrays - 如何找到数组最大值的索引?
我尝试了这里推荐的解决方案——在 Ruby 中,获取数组中最大值的索引的最干净的方法是什么?
但我得到了一些例外:
ruby - 如何获取克隆的惰性枚举器的大小
我们有一个 Enumerator::Lazy 对象
有人对这种行为有正确的解释吗?我知道size
返回枚举器的大小,如果不能懒惰地计算,则返回 nil。当我们克隆对象时它返回
ruby - 为什么在 Ruby 2.4 中冻结了 singleton_class 对象,而在 2.3 中却没有?
我们有一个应用程序,它使用 Sequel gem 连接到数据源,执行一些工作,然后返回一个结果,该结果具有许多附加到该singleton_class
对象的便利方法。在 ruby 2.3 中,此代码按预期工作:
我们可以看到使用 ruby 2.3.4 的 singleton_class 没有被冻结:
但在 Ruby 2.4.2 中,它似乎singleton_class
被作为冻结返回,我们不能再扩展它。有没有一种新的方法来扩展我应该使用的单例?
ruby - 如何从字符串末尾拆分令牌?
如果在字符串末尾找到来自数组的标记,我想将字符串分成两部分。我试过这个:
但是,虽然“女性”这个词是我标记的一部分,但它并没有被分开。如何调整我的正则表达式以使其正确拆分?
ruby - 在 Ruby 中生成随机数有多贵?
假设您想生成一个介于 1 到 10 亿之间的随机数:
每次调用这行代码时,Ruby 会从该范围创建一个数组吗?
Rubocop 建议结束这种方法,rand(1_000_000_000)+1
但似乎有可能带来痛苦。
Ruby 的文档是这样说的:
+max+
传递给的参数在哪里rand
,但它没有说明它是如何获得number
参数的。我也不确定调用.member?
范围是否有效。
有任何想法吗?
我可以使用基准,但仍然对这里的内部工作感到好奇。
ruby-on-rails-5 - Capistrano 在 rvm 更新后使用错误的 ruby 版本
我有一个 capistrano 3.4.0 脚本,已经成功部署了多年的应用程序。但是今天我更新了 RVM 并尝试部署我正在升级到 Rails 5.1.4 的 Rails 应用程序。Capistrano 似乎在第一部分工作得很好,但随后抛出了这个错误......
显然我不想使用 ruby 1.9.1,当我 ssh 进入 linux 并执行 ruby -v 时,它显示 Ruby 2.4.1。我通过使用将其设置为默认值
我也在使用 capistrano-rvm gem,当 capistrano 脚本开始部署时,它说
为什么在部署中途切换到 ruby 1.9.1?如何让它使用我的默认 ruby 版本 2.4.1?
rspec - 运行 rspec 时获取“ruby-2.4.2/lib/ruby/2.4.0/forwardable.rb:157 转发到私有方法”
我已将我的应用程序从 Ruby 2.2.3 升级到 Ruby 2.4.2,Rails 版本是 5.1.4。我能够升级应用程序,但是当我运行“bundle exec rspec”时,得到太多类似于
我遇到了解释这些行原因的链接: Forwardable break on private methods in ruby 2.4 但我没有得到任何解决方案来删除它们。
谁能指导我如何删除这些行?
ruby - 等待一个线程在 Ruby 中死亡
看来,在 Ruby 2.4 和 2.5 中,线程不会在您调用#kill
它们时立即死亡。此代码段将打印Not dead几次:
我想阻止主线程的执行,直到辅助线程被杀死。我尝试使用thread.join.kill
,但这当然会阻塞主线程,因为线程的循环永远不会终止。
如何确保在主线程继续之前杀死线程?
ruby - 为什么要定义一个名为 ! 打破IRB?
IRB 在定义一个名为!
.
要重现这一点,请在 IRB 中输入以下内容:
创建方法后,IRB 会无限打印foo:
据我所知,您不能直接调用以 编辑:您可以作为前缀运算符调用;!
Ruby 语法命名的方法;你必须send
改用。!
这只是否定:!x
为什么这个定义会导致 IRB 无限循环?IRB 是否依赖于一种名为!
打印其提示或类似内容的方法?
我在 Windows 10 上使用 Ruby 2.4.3 和 IRB 0.9.6。
ruby-on-rails-5 - 启动rails控制台时出错
当我尝试启动 Rails 控制台时,出现以下错误,
我怎样才能解决这个问题?