這兩個紅寶石之間有語義上的區別嗎?
不應該有。並沒有,至少與我已經測試的版本:
- YARV 1.9.2快照紅寶石1.9.2dev(2010-01-02軀幹26229)[i686的Linux的]
- YARV 1.9.1p243紅寶石1.9.1p243(2009-07-16的修訂24175)[I386-的mingw32]
- MRI 1.8.7p174紅寶石1.8.7(2009-06-12 PATCHLEVEL 174)[i686的Linux的]
- MRI 1.8.6p383紅寶石1.8.6(2009-08-04補丁級別383 (Java HotSpot TM客戶端VM 1.7)[i386-mingw32]
- JRuby 1.5快照(1.9模式) jruby 1.5.0.dev(ruby 1.9.2dev trunk 24787)(2009-11-02 6586) (Java HotSpot™客戶端)(j2y-java)
- JRuby 1.5快照(1.8模式) jruby 1.5.0.dev(ruby 1.8.7 patchlevel 174)(2009-11-02 6586) VM 1.7.0-ea)[x86-java]
- JRuby 1.4.0(1.9模式) jruby 1.4.0(ruby 1.9.2dev trunk 24787)(2009-11-02 69fbfa3)(Java HotSpot(TM) )客戶端VM 1.7.0-ea)[x86-java]
- JRuby 1.4.0(1.8 mo de) jruby 1.4.0(2009-11-02 69fbfa3)(Java HotSpot TM Client VM 1.7.0-ea)[x86-java]
- JRuby 1.3.1 (1.9模式) jruby 1.3.1(ruby 1.8.6p287)(2009-06-15 2fd6c3d)(Java HotSpot(TM)Client VM 1.6.0_14)[i386-java]
- JRuby 1.3.1(1.8模式)的jruby 1.3.1(紅寶石1.9.1p0)(2009-06-15 2fd6c3d)(爪哇的HotSpot(TM)客戶機VM 1.6.0_14)[I386-java的]
- 的IronRuby IronRuby的0.9.1.0上。 NET 4.0.0.0
- IronRuby .NET 2.0.0上的IronRuby 0.9.2.0。0
既然您發佈的代碼示例是不完整的,甚至不正確地分析,我用了一個稍作修改的版本進行測試:
class C < Object
def semicolon(arg); self.foo(arg); end
def newlines(arg)
self.foo(arg)
end
def really_short(arg) foo(arg) end
def foo(arg) arg end
end
require 'test/unit'
class TestMethodDefinition < Test::Unit::TestCase
def test_that_semicolons_work
assert_equal :foo, C.new.semicolon(:foo)
end
def test_that_newlines_work
assert_equal :foo, C.new.newlines(:foo)
end
def test_that_really_short_definitions_work
assert_equal :foo, C.new.really_short(:foo)
end
end
你寫
[.. 。]似乎並未被視爲功能
你是什麼意思? Ruby沒有這樣的功能,所以功能不起作用的事實不應該令人驚訝。
此外,您認爲「認可」是什麼意思?這個詞在編程中有着非常明確的含義,但是你似乎並沒有在這個意義上使用它。
最後,這是什麼意思,它「出現」不工作?它是否或不工作?
你能提供一個完整的和最小測試用例表現出你所看到的行爲?另外,請介紹:
- 什麼是你期待
- 行爲爲什麼你認爲應該發生
- 這種行爲是什麼行爲,你是實際上觀察
- 是什麼確切你正在收到的錯誤消息
目前,它看起來像一個非常微妙的錯誤在你的具體Ruby的安裝。
嗯,有趣...你能粘貼原始代碼嗎? – khelll 2010-01-02 13:21:19