为什么 ruby 这里需要括号?

Why does ruby require parentheses here?

当我尝试做的时候

assert_equal { dry: true }, res

我明白了

syntax error, unexpected ':', expecting '}'

        assert_equal { dry: true }, res

但是

assert_equal({ dry: true }, res)

工作正常。为什么第一种形式不足以让 ruby 理解什么 我是说?或者更准确地说,Ruby 认为我想做什么?

在第一个示例中,大括号被解释为分隔块。由于 dry: true 不是合法的表达式,因此您会得到 SyntaxError.