質問

おそらく何かバカなことをしているのですが、それが何なのかわかりません。

このプログラムからの出力は次のとおりです

foo

test

私が期待しているのは

foo
abc
test

ここで明らかに間違っているものを見ている人はいますか?

class Foo

    def initialize(l)
    @label = l
    end

    def label
    @label
    end

    def abc
    @abc
    end

    def abc=(abc)
    @abc
    end

end

foo = Foo.new("foo")
foo.abc=("abc")
puts foo.label
puts foo.abc
puts "test"
役に立ちましたか?

解決

abc = メソッドで@abcを設定することはありません。次のようになります

def abc=(val)
  @abc = val
end

他のヒント

エラーが何であるかを示すLoganの回答に加えて、最初にエラーが発生することはなかった方法を次に示します。

class Foo
  def initialize(l)
    @label = l
  end

  attr_reader :label
  attr_accessor :abc
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top