47得票1回答
Ruby中Object和BasicObject有什么区别?

这些类之间有什么区别?它们的目的有何不同?

22得票2回答
在Ruby中,是否可以定义一个带有默认参数的块?

这个问题讨论了传递给 Ruby 块的可选参数。我想知道是否也可以定义具有默认值的参数,以及其语法是什么。 乍一看,答案似乎是否定的:def call_it &block block.call end call_it do |x = "foo"| p "Called the ...

17得票4回答
为什么在单独的Ruby线程中进行任何密集计算时,Ruby 1.9 GUI会挂起?

Ruby 1.9应该有本地线程,如果某些线程进入本地代码(如GUI工具包主循环或某些Ruby库的C实现),则GIL应该会解除。 但是,如果我启动以下简单的代码示例,在主线程中显示GUI并在单独的线程中执行一些基本计算,GUI将会非常卡顿。尝试调整窗口大小以查看自己的情况。我已经使用了不同的G...

9得票2回答
我能否动态定义一个接受块的Ruby方法?

我知道我可以使用define_method在类上动态定义方法,并且我可以使用块的arity来指定该方法接受的参数。 我想动态定义一个既接受可选参数又接受块的方法。在Ruby 1.9中,这很容易实现,因为传递块到块是被允许的。 不幸的是,在Ruby 1.8中不允许这样做,因此以下操作将不起作...

35得票1回答
Ruby - UTF-8文件编码

我们都知道“神奇”的东西,但是真正理解它们的工作原理可能需要更多的学习和实践。# encoding: utf-8 我只看过使用一条线的表示方法,但我也听说过其他几种替代方法,有些甚至非常奇怪。你知道或者使用其中任何一种吗?是否存在更广泛的规则来确定什么样的表示方式是可接受的? 编辑:好的,显...

12得票2回答
如何将一个模块混入到 RSpec 上下文中

我该如何将一个模块混合(mix)到rspec上下文(即describe)中,以便于在测试规范(spec)中可以使用该模块的常量?module Foo FOO = 1 end describe 'constants in rspec' do include Foo p cons...

8得票1回答
Ruby顶层方法定义在哪里?

在顶层,方法定义应该导致Object上的私有方法,并且测试似乎证明了这一点: def hello; "hello world"; end Object.private_instance_methods.include?(:hello) #=> true Object.new.send...

11得票2回答
String#encode无法修复“UTF-8中的无效字节序列”错误

我知道有很多类似的问题与这个错误相关,我已经尝试了很多方法但都没有成功。 我遇到的问题涉及字节\xA1并引发了以下错误: ArgumentError: UTF-8中的无效字节序列 我尝试了以下方法,但都没有成功: "\xA1".encode('UTF-8', :undef =>...

23得票4回答
Ruby中的str.each无法正常工作

我正在学习 Ruby。 我在 http://ruby-doc.org/core/classes/String.html 上找到了方法 String#each。 当我尝试使用它时......irb(main):001:0> "hello\nworld".each {|s| p s} N...

141得票5回答
“:key => 'value'”和“key: 'value'”这两种哈希表表示法有什么区别吗?

:key => "value"(哈希箭头)和key: "value"(Ruby 1.9)表示法之间有区别吗? 如果没有区别,那么我想使用key: "value"表示法。是否有 gem 可以帮助我从:x =>转换为x:表示法?