[解決済み] Ruby: ハッシュの配列で Enumerator を取得しようとすると nil:NilClass の未定義メソッド `[]' が発生する。
2022-03-03 15:23:19
質問
ハッシュの配列に対してループ処理を行おうとしています。ループを開始するためにEnumeratorをフェッチするポイントに到達すると、次のエラーが発生します。
undefined method `[]' for nil:NilClass
私のコードは以下のようなものです。
def extraireAttributs (attributsParam)
classeTrouvee = false
scanTrouve = false
ownerOSTrouve = false
ownerAppTrouve = false
resultat = Hash.new(0)
attributs = Array(attributsParam)
attributs.each do |attribut| #CRASHES HERE!!!
typeAttribut = attribut['objectTypeAttribute']
[...]
デバッグモードで確認すると
attributsParams
引数と
attributs
変数が nil または空でないことを確認します。両方とも(同じだから!)59個のHashオブジェクトを含んでいますが、まだArrayのEnumeratorを取得することができません。
なぜこのようなエラーが発生するのですか?
ありがとうございます。
解決方法は?
undefined method `[]' for nil:NilClass
を実行しようとしたとあります。
something[index]
しかし
something
は
nil
. Ruby では
nil
を配列として呼び出す(つまり
[]
メソッドを実行します)。
問題は
attributs.each
の行ではなく、その次の行で
[]
メソッドを
attribut
.
typeAttribut = attribut['objectTypeAttribute']
の中にあるものを示しています。
attributs
がnilの場合。これは
attributsParam
は、このようにnilを含むリストです。
attributsParam = [nil];
attributs = Array(attributsParam);
# [nil]
puts attributs.inspect
最も簡単なデバッグ方法は
puts attributs.inspect
ループの直前で
が本当に必要なのかどうかも考えてみてください。
attributs = Array(attributsParam)
の行があるか、あるいはすでに何か
列挙可能
.
関連
-
[解決済み] 配列から要素を1つだけ値で削除する方法
-
[解決済み] Angular 2のTypeScriptで配列にフィルタをかけるには?
-
[解決済み] Swift Closuresの$0と$1の意味は何ですか?
-
[解決済み] MATLABで動的配列を作成する方法
-
[解決済み] 配列をヒープ化するためのヒープにおけるsiftUp, siftDown操作
-
[解決済み] Rubyでハッシュの配列をソートする方法
-
[解決済み] GCCです。配列型に不完全な要素型がある
-
[解決済み] Ruby: ハッシュの配列で Enumerator を取得しようとすると nil:NilClass の未定義メソッド `[]' が発生する。
-
[解決済み] Powershellで配列の値をソートする
-
[解決済み】rubyでハッシュの配列の中をハッシュ値で検索するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】アセンブリ言語での配列のバブルソート
-
[解決済み] Angular 2のTypeScriptで配列にフィルタをかけるには?
-
[解決済み] Luaで2次元配列を作成するには?
-
[解決済み] Swift Closuresの$0と$1の意味は何ですか?
-
[解決済み] Rで3D行列をセットアップし、特定の要素にアクセスする
-
[解決済み] RubyのArrayクラスで配列の各要素を2乗する方法は?
-
[解決済み] MASMアセンブリの配列 (非常に混乱している初級者)
-
[解決済み] Twigでの出力配列
-
[解決済み] SwiftでUInt8バイト配列を文字列に変換する方法
-
[解決済み] GCCです。配列型に不完全な要素型がある