トップページ > プログラム > 2014年09月30日 > 8M9GxsYT

書き込み順位&時間帯一覧

9 位/216 ID中時間01234567891011121314151617181920212223Total
書き込み数0011000000000011000000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Ruby 初心者スレッド Part 55

書き込みレス一覧

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
参照範囲で使い分ける感じですかね。
教えていただきありがとうございました。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。