print sentence.scan(/\[(\w+)\]/).all? do |word|
@words.keys.include? word[0].to_sym
end
の個々の値を印刷しましたが@words.keys.include? word[0].to_sym
、それらはすべて真ではありませんが、印刷されtrue
ます。これは、次のように評価されたためだと思います。
(print sentence.scan(/\[(\w+)\]/).all?) do |word|
@words.keys.include? word[0].to_sym
end
しかし、私はそれを次のように評価したい
print (sentence.scan(/\[(\w+)\]/).all? do |word|
@words.keys.include? word[0].to_sym
end)
ただし、括弧を追加すると、
syntax error, unexpected keyword_do_block, expecting ')'
コードが評価される順序を変更するにはどうすればよいですか?
編集:
上記が true でない限り、次のように print ではなく true を返したいと思います。
@sentences.reject do |sentence|
!(sentence.scan(/\[(\w+)\]/).all? { |word| @words.keys.include? word[0].to_sym })
end
しかし、それはすべてを拒否します。