問題タブ [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.
algorithm - 演算結果を変数として使用する
バッチ コードを使用して POS システム (POS システム) を作成しています。すべてうまくいっていますが、2 つの変数 (製品の数量) をセット数 (製品の価格) で乗算し、出力を別のファイルに送信しようとしています。このファイルは、最終製品のリストとして読み取られます。 、または変数として設定します。それが可能かどうかはわかりませんが、可能であれば誰か助けてください。
さらに詳細が必要な場合は、お知らせください。
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 に隠されている場合、配列はstruct
Go 、 Rust などのように動作します。つまり、配列はメモリ内のチャンク全体であり、それを渡すと、最初のメモリ アドレスだけでなく、その内容がコピーされます。エレメント。たとえば、次のプログラムの Go のように
出力を与えます:
scala - Scala の「マッチ」構造はシンタックス シュガーですか? もしそうなら、どのように機能しますか?
の
かなりの構文糖衣が進行中です。case
暗黙的に2つのオブジェクトを作成していることがわかります
そしてそれが私たちが例えば書くことができる理由でありSum(...)
、クラスを介してオブジェクトをインスタンス化することもSum(...)
できますSum.apply(...)
。
match
コンストラクトもシンタックスシュガーであるというのは正しいですか?もしそうなら、どのように - 例えばcase Number(n)
- コンパイラによって書き換えられますか?
n
incase Number(n)
がどこにも定義されているか、値にバインドされていることがわからないので、私は尋ねています。奇妙なことに、match
構文では最初の文字の大文字と小文字が重要になります (大文字の場合は定数になります)。私が知る限り、これはmatch
関連性のある構造にすぎないため、これは奇妙です.
scala - List ではなく Map で foldLeft を理解する
マップの仕組みを理解したいfoldLeft
。リストがあり、ゼロ要素と関数で foldLeft を呼び出すと、それがどのように機能するかを理解しています。
0
の最初の要素でゼロ要素をlist1
追加し、次に の 2 番目の要素を追加list1
します。したがって、出力は新しい入力になり、最初の入力はゼロ要素になります。
今、私はコードを手に入れました
- ここでの最初の要素は a
Tuple2
ですが、map2
は aMap
であり ではないのでTuple2
、ゼロ要素は何ですか? List
、つまりがあるときはlist1
、常に「次の要素を取りましたlist1
」。の「次の要素はmap1
何ですか?」の別のペアmap1
ですか?
scala - 関数の入力の型を明示するのはいつですか?
スパーク コレクションの開始文字あたりの平均単語長を計算できます
どちらか
または
それぞれがもたらす
理解できないこと: 2 番目の例の関数では型を明示的に記述する必要があるのに、最初の例の関数はなくてもよいのはなぜですか?
私は話している
対
それは、Spark の質問というよりはむしろ Scala に関する質問かもしれません。