cash = 100_000.00
sum = 0
cash += 1.00, sum while cash < 1_000_000.00 # underscores ignored
我在一本书“学习Ruby”中找到了上面的例子,但是使用Ruby 1.9它没有编译(“解释”?)
syntax error, unexpected ',', expecting $end
1.00之后应该做的逗号是什么?
以下是该示例的完整上下文:
#Also, like if, you can use while as a statement modifier, at the end of a statement:
cash = 100_000.00
sum = 0
cash += 1.00, sum while cash < 1_000_000.00 # underscores ignored
#So cash just keeps adding up until it equals $1,000,000.00. I like that!
答案 0 :(得分:5)
这是一个错误。关于它有unconfirmed error report,但official errata中没有任何内容(自2007年10月16日以来尚未更新)。
答案 1 :(得分:2)
它最有可能是分号,但代码仍然是错误的。我觉得有一些背景缺失。作者用sum做了什么?
您可以通过以下方式使用,这可能有助于解释意图。
i = 0
puts i +=1 while i < 10
这意味着此代码有意义
cash += 1.00 while cash < 1_000_000.00
答案 2 :(得分:0)
嗯,这不会是第一本也不是最后一本在代码中出现明显错误的编程书。
答案 3 :(得分:0)
也许这是一个错误或错误的分号(;)?
答案 4 :(得分:0)
完整的上下文如下:
另外,就像if一样,你可以使用while作为语句修饰符,在结尾处 声明:
cash = 100_000.00 sum = 0 cash += 1.00, sum while cash < 1_000_000.00 # underscores ignored
因此,现金只会持续增加,直至等于$ 1,000,000.00。我喜欢!
这里至少有一个错误。我的猜测是作者不小心使用了perl或C风格的逗号运算符,然后只删除了部分违规语句。