0

以下のようなことをすると、エラーが発生します。

x = ""
h = {:a => x==nil?"":x}

エラー:

syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('
h = {:a => x==nil?"":x}

ハッシュリテラル定義で三項演算子を使用することはできませんか?

4

3 に答える 3

4

スペースを大事にしてください。Ruby はnil?メソッド呼び出しとして扱います。これは機能します:

h = {:a => x==nil ? "" : x }
于 2013-07-14T01:08:50.030 に答える
2

次のように (あえぎ) 括弧を使用することもできます。

h = {:a => (x == nil)?"":x}

Object#nil?ただし、とにかくこの場合は、スペースを追加するか、メソッドを使用する必要があります。

于 2013-07-14T01:20:07.140 に答える