print()とカッコと三項演算子
2秒くらいはまったのでメモ。
これはok。
print 1 == 1 ? 'ok' : 'ng'; #=> ok
これもok。
print 'foo' eq 'foo' ? 'ok' : 'ng'; #=> ok
これはng、というか1。
print ('foo' eq 'foo') ? 'ok' : 'ng'; #=> 1
1は「eq」の返却値の「true」。
なのでこれと同義。
(print 'foo' eq 'foo') ? 'ok' : 'ng'; #=> 1
ちゃんとやるなら、こう。
print (('foo' eq 'foo') ? 'ok' : 'ng'); #=> ok print ('foo' eq 'foo' ? 'ok' : 'ng'); #=> ok print +('foo' eq 'foo') ? 'ok' : 'ng' ; #=> ok