問題タブ [language-concepts]

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 に答える
32 参照

algorithm - 演算結果を変数として使用する

バッチ コードを使用して POS システム (POS システム) を作成しています。すべてうまくいっていますが、2 つの変数 (製品の数量) をセット数 (製品の価格) で乗算し、出力を別のファイルに送信しようとしています。このファイルは、最終製品のリストとして読み取られます。 、または変数として設定します。それが可能かどうかはわかりませんが、可能であれば誰か助けてください。

さらに詳細が必要な場合は、お知らせください。

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

c - C の配列に対する嫌悪感

C の入門書では、ポインターは多かれ少なかれ配列であると主張されることがよくあります。せいぜい、これは大幅な単純化ではないでしょうか。

Cに配列型があり、ポインターとはまったく異なる動作をすることができます。次に例を示します。

出力を与える

または、別の例a = bではコンパイル エラーが発生します (GCC: "配列型の式への代入")。

もちろん、ポインタと配列の間には密接な関係があります。はい、配列変数自体の内容は最初の配列要素のメモリアドレスです。たとえばint a[10] = {777, 1, 2, 3, 4, 5, 6, 7, 8, 9}; printf("a = %ul\n", a);、777 を含むアドレスを出力します。

一方では、配列を構造体に「隠す」と、=演算子を使用するだけで大​​量のデータ (ラッピング構造体を無視した場合は配列) を簡単にコピーできます (それも高速です)。

出力:

ただし、配列自体でこれを行うことはできません。配列x, y(サイズと型が同じ) の場合、式x = yは不正です。

次に、関数は配列を返すことができません。または、配列が引数として使用されている場合、Cはそれらをポインターに折りたたみます。サイズが明示的に指定されているかどうかは気にしないため、次のプログラムは出力を提供しますsizeof(a) = 8

この配列への嫌悪の背後にある論理はありますか? C に真に堅牢な配列型がないのはなぜですか? あるとしたらどんな悪いことが起こるでしょうか?結局のところ、配列が a に隠されている場合、配列はstructGo Rust などのように動作します。つまり、配列メモリ内のチャンク全体であり、それを渡すと、最初のメモリ アドレスだけでなく、その内容がコピーされます。エレメント。たとえば、次のプログラムの Go のように

出力を与えます:

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

scala - Scala の「マッチ」構造はシンタックス シュガーですか? もしそうなら、どのように機能しますか?

かなりの構文糖衣が進行中です。case暗黙的に2つのオブジェクトを作成していることがわかります

そしてそれが私たちが例えば書くことができる理由でありSum(...)、クラスを介してオブジェクトをインスタンス化することもSum(...)できますSum.apply(...)

matchコンストラクトもシンタックスシュガーであるというのは正しいですか?もしそうなら、どのように - 例えばcase Number(n)- コンパイラによって書き換えられますか?

nincase Number(n)がどこにも定義されているか、値にバインドされていることがわからないので、私は尋ねています。奇妙なことに、match構文では最初の文字の大文字と小文字が重要になります (大文字の場合は定数になります)。私が知る限り、これはmatch関連性のある構造にすぎないため、これは奇妙です.

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

scala - List ではなく Map で foldLeft を理解する

マップの仕組みを理解したいfoldLeft。リストがあり、ゼロ要素と関数で foldLeft を呼び出すと、それがどのように機能するかを理解しています。

0の最初の要素でゼロ要素をlist1追加し、次に の 2 番目の要素を追加list1します。したがって、出力は新しい入力になり、最初の入力はゼロ要素になります。

今、私はコードを手に入れました

  1. ここでの最初の要素は aTuple2ですが、map2は aMapであり ではないのでTuple2、ゼロ要素は何ですか?
  2. List、つまりがあるときはlist1、常に「次の要素を取りましたlist1」。の「次の要素はmap1何ですか?」の別のペアmap1ですか?
0 投票する
1 に答える
81 参照

scala - 関数の入力の型を明示するのはいつですか?

スパーク コレクションの開始文字あたりの平均単語長を計算できます

どちらか

または

それぞれがもたらす

理解できないこと: 2 番目の例の関数では型を明示的に記述する必要があるのに、最初の例の関数はなくてもよいのはなぜですか?

私は話している

それは、Spark の質問というよりはむしろ Scala に関する質問かもしれません。