簡體   English   中英

無法將塊傳遞給Ruby中的內核子方法

[英]can't pass block to Kernel sub method in Ruby

我正在嘗試以bash運行紅寶石單線,這是發生的情況:

~$ echo a$'\n'b$'\n'c | ruby -pe 'sub(/./,"x")'
x
x
x
~$ echo a$'\n'b$'\n'c | ruby -pe '$_.sub!(/./){"x"}'
x
x
x
~$ echo a$'\n'b$'\n'c | ruby -pe 'sub(/./){"x"}'
-e:1:in `sub': wrong number of arguments (1 for 1..2) (ArgumentError)
        from -e:1:in `sub'
        from -e:1:in `<main>'

為什么命令3不能像命令2一樣工作?

(這是ruby 1.9.2。echo語句僅用於提供三行輸入)

看來這是1.9.2中的錯誤 它已針對2.0.0進行了修復 (並反向移植到1.9.3 )。 解決方法只是升級到Ruby的最新版本。

無論如何,您都應該升級,因為對1.9.2的支持才剛剛結束

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM