rubyのdefined?はちょっとややこしい unless 修飾子を使って > value = true unless defined?(value) とやってもvalueにはtrueが入らない valueにはnilが入る > unless defined?(value) > value = true > end とやるとvalueにtrueが入る value = true unless defined?(value) としたときに内部では value 宣言 value = true という流れになるから「value 宣言」の時点でdefined?(value)ではなくなって 「value = true」まで行かないってこと? もしかしてdefined?ではなく修飾子の仕様を俺が勘違いしてるからかな?