有人知道为什么IRB在块中给出语法错误吗



它只是一个普通的ruby。你知道为什么下面的代码会出现语法错误吗?

irb(main):001:0> def count_valid_policies(input)
irb(main):002:1>   counter = 0
irb(main):003:1>   policies = input.split("n")
irb(main):004:1>   policies.each do |policy|
irb(main):005:2*     valid?(policy) && counter++
irb(main):006:2*   end
irb(main):007:1>
irb(main):008:1>   puts counter
irb(main):009:1> end
Traceback (most recent call last):
1: from /usr/local/bin/irb:11:in `<main>'
SyntaxError ((irb):6: syntax error, unexpected keyword_end)
end
^~~
(irb):9: syntax error, unexpected end-of-input, expecting keyword_end

因为counter++不是有效的ruby表达式。您应该将其替换为counter += 1

最新更新