问题标签 [ruby-2.1]
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.
ruby - 我可以在 Ruby 2.x 中要求命名参数吗?
Ruby 2.0 正在添加命名参数,如下所示:
如何在不提供默认值的情况下使用命名参数,以便它们是必需的?
ruby - Ruby 2.1 冻结字符串
Ruby 2.1 将有一个冻结字符串,因此每次解释器运行时都不会重新创建对象,即
为什么解释器不能自动检测到这个字符串不会改变并自动冻结它?
或者,pre-ruby 2.1 一旦解释器开始运行,任何代码如何更改这样的字符串?如果我们说“abcd”需要被冻结,那么一定有某种方法可以改变它。
-- 更新:上面的问题已经更新,所以下面的评论有点尴尬,但解决了之前不太好的代码示例。
-- 更新: http: //globaldev.co.uk/2014/05/ruby-2-1-in-detail/ Ruby 密钥会自动冻结。
ruby - 为什么文字字符串应该从 Frozen 开始?(红宝石 2.1)
在开发 Ruby 2.1 之后,我读到了一个可能会添加的功能,因此允许开发人员指定文字字符串应该从“冻结”开始。
语法如下所示(注意尾随f
):
在其他 Ruby 文档/wiki中,我读到此功能提供以下好处:
这允许 VM 每次都使用相同的字符串对象,并且可能跨多个文件使用相同的冻结字符串。它显然还提供了冻结字符串的所有不变性保证。
我的问题是:
- 这有什么好处?
- 当这样的功能提供价值时,现实世界的例子是什么?
- 这与 a 有何不同
symbol
?
谢谢
ruby - 为什么用 Ruby 2.1 编写的代码必须能够被 Ruby 2.0 解释器解析?
在 Ruby Core 中,"foo"f
已经为 Ruby 2.1 提出了一种新的冻结字符串的文字表示法,但现在人们担心用这种语法编写的代码将无法被 Ruby 2.0 解析。为什么这是个问题?Ruby 不是只尝试向后兼容吗?也就是说,如果用 Ruby 2.0 编写的代码可以被 Ruby 2.1 解释器解析,那还不够吗?为什么用 Ruby 2.1 编写的代码必须能够被 Ruby 2.0 解释器解析?
ruby - 如何在 Ruby 2.1 中获取给定 UTF-8 代码的字符
我想知道是否有办法获取给定 UTF-8 代码的字符?
例如:
ruby - Ruby 2.1.0 中的 Object#define_singelton_method 定义了私有方法?
失败private method `foo' called for #<Object:0x00000001e89580> (NoMethodError)
。Ruby 2.0.0 的行为并非如此。这是 2.1.0 中的错误还是有意更改?
ruby - ArgumentError 是否缺少 backtrace_locations?
当我调用时Exception#backtrace_locations
,它通常会按预期返回一个数组:
如果我ArgumentError
手动提出一个,这也是一样的:
ArgumentError
但是,当我通过调用具有错误数量参数的方法来引发 real 时, backtrace_locations
is nil
,这对我来说是出乎意料的:
在相同的情况下,经典Exception#backtrace
返回一个数组,如预期的那样:
上述第三种情况的返回值是Exception#backtrace_locations
有意nil
的吗?如果是这样,什么时候Exception#backtrace_locations
成为nil
?有这方面的文件吗?或者,它是一个 Ruby 错误?
在这一点上,我认为这是一个错误,并报告了它。
ruby - 为什么 rvm install ruby-2.1.0 会安装 preview1?
我刚尝试安装 Ruby 2.1,却得到了 2.1 Preview 1。这对我来说似乎很疯狂。2.1出来了。当我rvm install ruby-2.1.0
说我的意思时,为什么 RVM 会假设?为什么它不匹配我指定的确切版本,而不是以该子字符串开头的版本?rvm install ruby-2.1.0-preview1
nginx - nginx:[emerg]“passenger_root”指令中的参数数量无效
我正在尝试第一次在 EC2 上设置 Rubber (complete_passenger_nginx_postgresql)。我更改了配置文件中的一系列设置,以使其适用于不同的 AMI(Ubuntu 12.04.3 LTS - ami-a73264ce(64 位))、Ruby 2.1.0、Passenger 4.0.29 和 Nginx 1.4.4 . 我几乎让它工作了,但是在启动 Nginx 时它失败了,并出现以下错误:
Rubber-passenger_nginx.yml 的“passenger_root”代码如下:
知道我应该改变什么才能让它工作吗?
ruby-on-rails - Ruby 2.1.0 / 2.1.1 / 2.1.2 不支持调试器 gem
我刚刚将我的 RVM Ruby 安装升级到 2.1.0 版,并在遇到以下错误时尝试捆绑安装:
这个错误当然是不言自明的,但我想知道是否有办法让 Debugger gem 与最新版本的 Ruby 一起工作?