問題タブ [indirection]

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.

0 投票する
2 に答える
64 参照

arrays - local -a 'xkeys=("${!'"$1"'[@]}")' の説明

このコードは、配列の長さとインデックスを間接的に取得する例として、bash-hackers.org wiki ページで配列間接化の回避策として提供されています。

このStackoverflow questionにも記載されています。

なぜ機能するのかを具体的に理解したいと思いlocal -a 'xkeys=("${!'"$1"'[@]}")'ます。ここで何が起きてるの。等号の右側に 3 つの異なる文字列があることを理解しています。

  1. 'xkeys=("${!'
  2. 「$1」
  3. '[@]}")'

なぜそれが機能するのですか?

これはコードです:

ありがとう

0 投票する
1 に答える
157 参照

macros - ALET マクロとインダイレクションの使用

「Let Over Lambda」の第 6 章で、 というアナフォリック マクロを見つけましalet。のように機能しますが、実際にテキストに出現する前にラムダ式を使用できるため、bodyletの最後の形式がラムダ式の場合に特に便利です。alet

これはマクロの最初のバージョンですalet%:

ここまでは順調ですね。しかし次に、作成者は次の理由でマクロを拡張することを決定します。

alet%本体の最後のフォーム (ラムダ フォームであると予想される) を返さないようにすることができますが、その代わりに、let フォームのレキシカル スコープ内の別の関数を検索し、代わりにその関数を呼び出す関数を作成できます。これは間接参照と呼ばれることがあります。これは、何かを行うために関数を返す代わりに、ポインター逆参照を使用して関数をルックアップし、代わりにその関数を使用する関数を返すためです。インダイレクションは、正当な理由でプログラミング言語全体に遍在する概念です。これにより、コンパイル時に間接的に修正されるものを実行時に変更できます。

aletと定義されている:

違いはなんですか?この最終バージョンでできることとalet%できないことは何ですか? alet別のラムダを呼び出すラムダを返します。それは何のために良いですか?誰かが間接的な使用の例を挙げることができれば、それはありがたいです。

0 投票する
2 に答える
297 参照

c - より多くのレベルの間接化が C のパフォーマンスに影響を与えるか

構造体の配列を含む構造体がある場合....そして

でアクセスしたほうがいいですか

それともこれと同じですか

または、効率が失われるレベルの数に制限があり、コンパイラの最適化は何らかの効果がありますか?

提供された洞察に事前に感謝します。

0 投票する
2 に答える
8466 参照

c - double void ポインターを int ポインターに逆参照する方法

次のようなコードがあります。

int ポインターを指す void double ポインターを逆参照できないのはなぜですか? 以下の 2 つの例は動作します。

スニペット:1

スニペット 2:

0 投票する
2 に答える
70 参照

bash - ユーザーと既存の変数の値を確認する Bash 関数の書き方

ユーザーに値の確認を発行してもらいたい構成変数が多数あります。そのため、実行番号を指定する変数が存在する可能性があり、スクリプトでユーザーに変数の現在の値が問題ないかどうかを尋ねます。ユーザーが値に問題があると応答すると、スクリプトは新しい値を要求し、それを変数に割り当てます。

これを行うための関数を最初に試みましたが、実行に問題があります。それは失速します。問題を解決するための支援と、私が使用しているアプローチに対する批判を歓迎します。コードは次のとおりです。

0 投票する
1 に答える
3032 参照

arrays - Bashで連想配列のキーと値を間接的に取得する方法は?

Bash では、連想配列の名前を含む変数のみを指定すると、

連想配列のキーと値を取得するにはどうすればよいでしょうか?