問題タブ [autovivification]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 関係を保持したまま、ネストされた要素の頻度を取得する
私はの配列を持っています
ショップオブジェクト
都市オブジェクトに属する
- 都道府県物に属するもの
最後に、都道府県、市区町村、頻度の順にリストされたハッシュを作成したいと思います...
私はこれを思いつきましたが、それは本当にルビーらしくありません..
これを行うには、DRY-er の方法が必要です。
ruby - rubyでは、デフォルト値が空の配列のハッシュで配列の追加が失敗するのはなぜですか?
以下のコード例。ハッシュ値に対して append を呼び出すと正しく返されますが、ハッシュ自体は期待どおりに動作しません。
javascript - 自動活性化と Javascript
JavaScript では、存在しないインデックスまたはプロパティを指定すると動的に作成されないため、自動有効化は未定義の構造を「デリファレンス」することだけに関係していますか? しかし、これは自動有効化ではないでしょうか?最初に基になる構造をオブジェクトまたは配列として宣言する必要があります。
ruby - Ruby ハッシュ初期化子
ハッシュ初期化子:
誰かが別の質問にこれらを投稿しているのを見ましたが、最初のケースで動物が空白に見える理由がわかりません。入力すると
適切な配列を取得します。
python - Python では、次の AutoVivification クラスはどのように機能しますか?
ネストされた辞書を操作する方法を探しているときに、noskloによって投稿された次のコードを見つけました。説明したいと思います。
テスト:
出力:
私はかなり初心者のプログラマーです。私が知っていることのほとんどは、高校時代にターボ パスカルに関する唯一の正式なトレーニングを受けて、サイドで自分の時間に学びました。__init__
、クラス メソッドを使用したり、 を使用してクラスのインスタンス内にデータを保存したりするなど、簡単な方法でクラスを使用できることを理解していfoo.man = 'choo'
ます。
一連の角括弧がクラスを介して正しく指示される__getitem__
方法がわかりません (何らかの方法で呼び出していると思います)。また、メソッドを個別に 3 回呼び出すことなく、それぞれがどのように簡潔に処理されるかがわかりません。
(dict)
クラス宣言の は によって処理されるという印象を受けました__init__
。
私はtry: except:
以前にも、非常に単純な方法で使用しました。try
が実行されると、一連の関数が呼び出されているように見えます__getitem__
。現在のレベルの辞書が存在する場合、try はパスして次の辞書に移動することがわかりました。except
、私が集めると、 があるときに実行されますが、そのように使用されるのKeyError
は見たことがありませんself
。 のインスタンスSelf
だと思っていたのに、辞書のように扱われています...両方ですか?このように 2 回続けて代入したことはありませんが、 が を指しているのに対し、 が の結果を指していると思われます。しかし、次のようなものを返します:self
class AutoVivification
foo = man = choo
value
self[item]
self[item]
type(self)
type(self)
<class '__main__.AutoVivification'>
そうじゃない?最後にある余分な丸括弧が何のためにあるのかわかりません。関数がどのように呼び出されているのかわからないため、どこvalue
に返されているのかわかりません。
質問ばかりですみません!これには理解できないことがたくさんあり、ドキュメントを何時間も読んでいない限り、どこを調べたらよいかわかりません。このコードは私の目的を果たしているように見えますが、使用する前に理解したいと思います。
ネストされた辞書を使用してプログラムで何をしようとしているのか知りたい場合: 天文学的なスケールで地図データを保持しようとしています。4 回ネストされた 10^6 アイテムの辞書/リスト (つまり 10^24 アイテム) を作成することはできませんが、スペースはほとんど空であるため、空の値を完全に除外して、何かがある場合にのみ割り当てることができます。私を悩ませていたのは、辞書を効率的に処理する方法でした。
perl - Perl で非活性化する方法
次のような Perl スクリプトがあるとします。
しかし、私の出力は「c」を自動作成しますが、これは望ましくありません。
また、私のディストリビューションでは、自動有効化を無効にすることはできません。各レベルをチェックするサブルーチンを作成する方法はありますか?
javascript - Javascriptオブジェクトの自動生存をサポートするライブラリはありますか?
とにかく、ネイティブまたはライブラリを介して、Javascriptオブジェクトで自動生存を使用することはできますか?
IEfoo
は、プロパティのないオブジェクトであると想定しfoo.bar.baz = 5
、必要ではなく単に実行できるようにしますfoo.bar = {}; foo.bar.baz = 5
。
perl - 自動有効化によって作成されたハッシュには追加のキーがあります
これは私が持っているものです
これは私が得る出力です
私の質問は、本質的に以前に作成されたキーと値のペアの値であるこれらの追加のキーが作成された理由です。
これは私が期待するものです
誰かが私の明らかな間違いを訂正してもらえますか?
perl - TIEHASHによるPerlの自動生存
これは、処理するタイハッシュの予想される直感的な動作です$h{a}++
。
これもネストされたケースを処理することが期待され$h{a}{b}++
ますが、その理由も、最も重要なこととして、この動作をオーバーライドする方法もわかりません。
Tie :: CHIをテストしているときに、これに遭遇しました。明らかに複雑なオブジェクトを保存することができます。
また、Perlは、深くネストされた構造から任意のデータを取得できます。
ただし、ネストされた構造内に格納することは、tie()されたハッシュでは機能しません。
Tie :: CHIにパッチを適用して、このケースをより多くのDWIMmeryで処理できますか?そうでない場合、代替手段は何ですか?