- Ruby 初心者スレッド Part 55
554 :デフォルトの名無しさん[sage]:2014/09/30(火) 02:17:48.38 ID:8M9GxsYT - 初歩的な部分ですがフィールド配列の外部参照がよく分かりません。
@array = Array.new と宣言してある外部クラスをインスタンス化して ins.array[0]=10 等とアクセスしようとしてるのですが、 undefined method `[]' for nil:NilClass (NoMethodError)と出ます。 何が間違っているのでしょうか?
|
- Ruby 初心者スレッド Part 55
557 :デフォルトの名無しさん[sage]:2014/09/30(火) 03:14:45.25 ID:8M9GxsYT - >>555
class ClassA @array = Array.new attr_accessor:array end instance = ClassA.new() instance.array[0]=10 puts(instance.array[0]) とアクセスを確認するだけの単純なものです 同じクラスの以下のコードは普通に表示されるのですが array2=Array.new array2[0]=10 puts(array2[0])
|
- Ruby 初心者スレッド Part 55
567 :デフォルトの名無しさん[sage]:2014/09/30(火) 14:58:07.85 ID:8M9GxsYT - >>564
ああ、なるほど上手く動きました。 rubyではインスタンス変数として使うなら def initializeに書いたりする必要があるんですね。 質問なのですが、「ClassA」というオブジェクトのインスタンス変数、 というのはクラス変数とどう違うのでしょうか?
|
- Ruby 初心者スレッド Part 55
570 :デフォルトの名無しさん[sage]:2014/09/30(火) 15:36:45.31 ID:8M9GxsYT - >>569
参照範囲で使い分ける感じですかね。 教えていただきありがとうございました。
|