当我这样链时:
self.config["footers"].map({|f| f["name"]}).include?(footer_name)
我明白了:
syntax error, unexpected '}', expecting keyword_end
我在这里做错了什么?
答案 0 :(得分:5)
您将map
的块放在括号中。请改用:
self.config["footers"].map {|f| f["name"]}.include?(footer_name)
如果由于某种原因,一般情况下,您遇到优先级问题,请在整个调用周围加上括号:
(self.config["footers"].map {|f| f["name"]}).include?(footer_name)
答案 1 :(得分:3)
不要将map
块放入()
。这是一个块,而不是参数:
self.config["footers"].map{|f| f["name"]}.include?(footer_name)
答案 2 :(得分:0)
如果由于管理强加的括号配额而绝对必须使用括号,则可以将带有&符号运算符的proc传递给解释为块。
self.config["footers"].map(&proc{|f| f["name"]}).include?(footer_name)
虽然比正确的块使用更不干净和令人满意,但它可以为您的括号预算向请购单委员会证明其合理性。