問題タブ [pass-by-name]

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 投票する
1 に答える
1178 参照

go - Go言語で混乱する参照型

Go 言語で Trie データ構造を作ろうとしたのですが、なぜか References 問題で行き詰まってしまいました。http://play.golang.org/p/ASSGF5Oe9R

私が入れた2番目の「挿入」では、次の問題が発生します。//Problem Point

次に連結したトライを検索する方法を作っcontainsIndexたところ、実際にうまく検索できました。しかし、与えられたnextプロパティを更新するとcontainsIndex、その母構造体には影響しませんでしtrieた。

私が理解していないのは、 を返すときに参照型を指定したことですcontainsIndexが、それでも「コピーされた値」が好きでしたtrie

ありがとう!

0 投票する
3 に答える
66 参照

scala - 変更するメンバーをパラメータで決定

次の Scala コードでは、val に代入できないというコンパイル エラーが発生します。

簡単な例:

私の実際の使用に近い例:

元に戻す/やり直しは非常に似ているため、共通コードを関数に抽出したいと思います。これは、ソース/ターゲットのペアをredoState/として渡しundoState、その逆を行いたいと考えていました。

関数が何かを格納する場所を特定する方法はありますか? (C++ では、この状況ではメンバーへのポインターを渡します)。

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

scala - 値による & scala の名前による => 1 対 1 の対応

渡しの場合

val f: (Int) => Int = {(i) => {i * i}} # f: Int => Int = <function1>
の省略形です
val f: Function1[Int, Int] = {(i) => {i * i}} # f: Int => Int = <function1>

次に、名前 で呼び出す場合は?
val f: (=> Int) => Int = {(i) => {i * i}} # f: (=> Int) => Int = <function1>
の省略形です 。
何 ?

で、もし

値による呼び出し時

val f = {(i) => {i * i}}:(Int) => Int # f: Int => Int = <function1>
の省略形です
val f = {(i) => {i * i}}:Function1[Int, Int] # f: Int => Int = <function1>

次に、名前 で呼び出す場合は?
val f = {(i) => {i * i}}:(=>Int) => Int # f: (=> Int) => Int = <function1>
の省略形です 。
何 ?

言い換えると

if (Int) => IntFunction1[Int, Int]の短縮形です

then (=> Int) => Int?の省略形です。何 ?

ありがとうございました !

0 投票する
0 に答える
190 参照

scala - A => => B とはどういう意味ですか?

別の質問では、 type の値になりましたA => => B。これは何を意味するのでしょうか?

=> Aこれは実際には型ではなく、名前による呼び出しのセマンティクスで動作するように引数を宣言できる方法であると、私は常に理解してきました。しかし、それがタイプでない場合、どういうA => => B意味ですか?

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

python - オブジェクト参照値による Python パス

(バイナリ) ツリーのルートから各リーフまでのすべてのパスを出力するアルゴリズムを Python で記述しようとしています。これが私のコードです:

現在のトラバーサルでノードのリストを保持し、リーフに到達したらリストを出力します。ただし、Pythonがオブジェクトを渡す方法について誤解しています。各再帰呼び出しが完了してスタックからポップされると、元の変数は再帰呼び出しの影響を受けないだろうと考えましたcurr_travしかし、それはまるでラインのようです

元のリストを変更しています。+=演算子は、元のオブジェクトを実際に変更する とは対照的に、新しいリストを返します.append()。この呼び出しは、元のオブジェクトを変更するのではなく、関数内のオブジェクトに与えられた名前を再割り当てするだけであってはなりませんか? 行を次のように変更すると

すべて正常に動作しますが、元の行の問題が何であったかわかりません。私の質問が不明な場合はお知らせください。

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

c - C での名前渡しの実装

C言語の名前渡し機構を使って、インデックスiに依存する算術式^2 + 3i − 1の値を計算するにはどうすればよいですか?

9
∑ i^2 + 3i − 1
=0

名前で渡された引数を使用して sum プロシージャを呼び出す

Cで書かれた名前渡しの例も私を助けることができます