問題タブ [callbyname]

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

c - 動的スコープを使用した名前による呼び出し

静的/動的スコープに関する次の問題で立ち往生しています。

次のプログラムフラグメントは、グローバル変数を許可し、関数のネストされた宣言を許可しないプログラミング言語で記述されています。

Q1。プログラミング言語が静的スコープを使用し、必要に応じてパラメーターを渡すメカニズムを呼び出す場合、上記のプログラムによって出力される値は次のとおりです。

(A)115、220(B)25、220(C)25、15(D)115、105

Q2。プログラミング言語が動的スコープと名前による呼び出しパラメーター受け渡しメカニズムを使用する場合、上記のプログラムによって出力される値は次のとおりです。

(A)115、220(B)25、220(C)25、15(D)115、105

私の考え:

Q1:静的スコープであり、必要に応じて呼び出しられるため、xをi+jに置き換える必要があります。ただし、名前iの変数が既に存在するため、ローカル名の競合が発生します。したがって、それ(グローバルi)の名前が変更される可能性があります。たとえば、i1とすると、呼び出しは次のようになります。

Q2:動的スコープでは、最初にローカル関数で変数を検索し、次にローカル関数を呼び出した関数を検索し、次にその関数を呼び出した関数を検索し、以下同様に呼び出しスタックを検索します。

名前による呼び出しによると:

そして2番目の呼び出しは

この答えは正しいですか?(オプションにはありません)何か足りないものはありますか?(動的バインディングは可能性がありますか?)

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

vb.net - CallByName を使用したサブクラスまたはサブプロパティへのアクセス

CallByNameを使用してクラスのサブ値にアクセスできます(つまり、取得できますClass.SubValue)。しかし、 CallByName を使用しよ
うとするとエラーが発生します。 CallByName を使用して (または smtg else を使用して) 実行することは可能ですか?Class.SUBCLASS.SubValue

典型的なコードは次のとおりです。

-- 編集: これが実際の質問です。--

ファイルからフォームのコントロールにパラメーターをロードしたいのですが、ファイルではパラメーターは次のように記述されています
<ControlName>.<Property>=<Value> | TextBox1.Text=SomeText | Button2.Left=1234
。使用するとエラーが発生します。
CallByName(MyForm, "<ControlName>.<Property>", CallType.Set, "<Value>")

どうすれば問題を解決できますか (CallByName または smtg else を使用)?

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

scala - 怠惰な「名前による」パラメーターを含むパラメーターリスト (「*」)?

できます:

そして私はできる:

しかし、私はできません:

または

私がやりたいことをする他の方法はありますか?なぜこれが許可されていないのですか?

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

scala - 遅延値を使用した名前による呼び出しと値による呼び出し

値渡しされる変数の違いを知りたいのですが、怠惰であり、Scala で変数を名前で渡します。

見せようとしてこの例を書きましたが、そうではありません。どうすればよいですか?

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

language-agnostic - 名前による呼び出しの評価と foreach ループ

初めてこの問題に直面しましたが、理解できません。

配列と foreach ループがあるとしましょう。このようなもの:

私が間違っているのですか、それともここで何かがうまくいかないのですか? つまり、foreach をループするたびに、y を (名前で) 評価するので、v[i++] であるため、i 変数の値を 1 増やします。

  1. したがって、最初のステップ y = v[0] なので write(10) 次に i++ (i=1)。
  2. 2 番目のステップ y = v[1] なので write(20) で、i を 1 増やします (i=2)。
  3. 3 番目と最後のステップ y = v[2] なので、 write(50) と i++ を再度実行すると、これは 3 に等しくなります。

では、どのような値を返す必要がありますか?! y を再度評価すると、y = v[3] は実行できません。境界を超えてしまうからです。私は何か間違ったことをしていますか?foreach ループの前に y を 1 回だけ評価する必要がありますか? 名前でパラメーターを呼び出すときに考慮していない foreach に何かがあるに違いありません。

わからない、私は少し混乱しています。

前もって感謝します!

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

scala - ScalaMock を使用して名前による呼び出し引数 (getOrElse など) をモックする方法は?

ScalaMock で名前渡し引数getOrElseとして渡されたものを返すように、メソッドの戻り値をモックできるようにしたいorElse

カリー化のため、ScalaMock を使用する必要があります。これを実行する:

例外をスローします:

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

vb.net - callbyname を使用して list.contains(x) をチェックする

callbyname を使用して、リストに追加する前にターゲット リスト (targetListName) に特定の項目が含まれているかどうかを確認する汎用関数を作成しようとしました。残念ながら、callbyname で .contains を使用する方法がわかりません。どんな助けにも感謝します!

これは私が今使っているコードです。Supply と Demand はどちらも (文字列の) リストです。

理想的には、代わりに次のようなものを使用したいと思います。

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

excel - クラス モジュールでのみ Call By Name を使用できるのはなぜですか?

このリンクが示すように、VBA for Excel では、クラス モジュール内のメソッドでしか CallByName を使用できないことがわかりました: http://support.microsoft.com/kb/186143

私の質問は、なぜですか?同じ機能をクラス外で使用できない理由がわかりません。

これが特定の VBA の質問なのか、それとも他のプログラミング言語でも同じことが当てはまるのかはわかりません。

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

programming-languages - 名前/参照/値による呼び出し

誰かが名前、参照、および値で呼び出しを詳細に説明し、それらを相互に比較できますか?

簡単な例も素晴らしいでしょう。私は本当に名前による呼び出しに集中しています。参照による呼び出しに非常に似ているように感じます。