問題タブ [scalar-context]

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

perl - 空のリストをスカラー コンテキストにすることはできますか?

スカラーコンテキストのリストがリストの最後の要素を生成するという嘘があります。(ことわざにあるように) スカラー コンテキストではリストを使用できないため、これは嘘です。スカラー コンテキストでリストのように見えるものは、実際にはスカラー コンテキストではコンマ演算子であり、スカラー コンテキストでは異なる動作をします。

ただし、このロジックには抜け穴があるようです: null リスト (空のリストと呼ばれることもあります)。文字()によってヌル リストになるように定義されますperldoc perlglossary。コンストラクト

は有効なコードで、 に戻りundefます$s。これはどこにも文書化されていないようperldocですが (私は Camel をチェックしていません)、多くのコードがそれに依存しているので、ここにとどまると思います。

プリアンブルが完了したので、ここで質問があります。スカラー コンテキストでリストを使用できない場合、スカラー コンテキストで空のリストを何と呼ぶか​​、およびそれをリストと呼ばない理由は何ですか (カンマがないため)スカラーコンテキストになる)?

この質問を楽しんでいるなら、P5P で行われている議論も好きかもしれません。

0 投票する
6 に答える
477 参照

perl - スカラーコンテキストのリストのようなものはありますか?


そして、それperldoc perlfaq4は上記の行を次のように説明しているためです(強調が追加されています):

スカラーに割り当てているので、右側はスカラーコンテキストにあります。スカラーコンテキストのコンマ演算子(はい、演算子です!)は、左側を評価し、結果を破棄し、右側を評価して結果を返します。事実上、その リストそっくり$scalarさんはその右端の値に割り当てます。多くの人は、最後の要素が期待する数でもあるリストそっくりのものを選択するため、これを台無しにします。

これが意味することを私が理解しているのは、スカラーコンテキストにはリストのようなものがないということです。

ただし、ikegamiは、「結果はリスト演算子になるため、リストリテラルである」と主張しています。

それで、それはリストですか?

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

entity-framework - EFのナビゲーションプロパティ/関連テーブルを更新するにはどうすればよいですか?

Customerナビゲーションプロパティを持つオブジェクトがありますDays(daysは、-day_id、customer_id-FKを持つ別のテーブルです)。

これは、顧客のスカラープロパティのみを更新し、日数は更新しませんでした。Daysを更新するスマートな方法はありますか?(日中に手動で繰り返すことなく..)?そうでない場合-2番目のテーブル(日)を更新するためのベストプラクティスはありますか?可能であれば、明示的なコードを使用してください。

ps現在EF4.0を使用しています

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

perl - 多次元配列から文字列を連結すると、Perl でターゲット文字列が上書きされます

文字列値を持つ 2 次元配列を作成しました。常に 12 列ですが、行数は異なります。今、各行の文字列を作成したいのですが、次のコードを実行すると:

$outstring最初の値を取ります。次に、2 番目の内側のループと後続のループで、値$outstringがオーバーレイされます。たとえば、最初の値は"DATE"、次に値"ABC"が供給されるときです。期待されているというより"DATEABC""ABCE". はの"E"4 番目の文字ですDATE。スカラー/リストの問題を見逃していると思いますが、バリエーションの数を知っている人が役に立たないことを試しました。私が最初に始めたとき、私は から直接連結を試みました@DATATABLE。同じ問題。速くなるだけです。

0 投票する
5 に答える
3256 参照

arrays - Perl での 2 次元配列アクセス

都市が設定された配列があります。サブルーチンへの参照によって配列を渡し、各都市を出力して出力したいと考えています。ただし、次の問題があります。

  1. サブルーチンのwhileループの前に各要素にアクセスできます。しかし、 whileループ内の要素にアクセスできません。エラーメッセージが表示されます:

    ... 44 行目、997 行目 (#1) の印字で初期化されていない値が使用されています 44 行目、998 行目 (#1) の印字で初期化されていない値が使用されています ...

以下はいくつかのコードです。何が印刷され、何が印刷されないかについてコメントしました(説明に必要のないコードを切り取ろうとしました...):

  1. Perl の構文は、私を非常に混乱させます。@{$_[1]}[0] で何が起こっているのかわかりません。私はそれを解決しようとしています。
  1. $_[1]、この位置の値をスカラー値 (配列のメモリ アドレス) として扱います
  2. @{...}、このメモリアドレスに格納されているものを配列として解釈します
  3. @{...} [x]、インデックス x の要素にアクセス

私は正しい軌道に乗っていますか?

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

arrays - perl 配列をスカラー コンテキストから取得するのに助けが必要

次の方法で保存する必要がある perl 配列があります。

次に、後でコンテンツを取得する必要があります。

これにより、次の結果が得られます。

(配列内のアイテムの数)。

スカラー コンテキストから抜け出して、$self->{spec}->{allImages} をリストとして取得するにはどうすればよいですか?

0 投票する
4 に答える
441 参照

perl - Perl の「逆コンマ演算子」 (Programming Perl, 4th Edition の例)

「プログラミング Perl 」を読んでいて、意味をなさないように見える奇妙な例に出くわしました。この本では、Perl のコンマ演算子がスカラー コンテキストで使用されたときに最後の結果のみを返す方法について説明しています。

例:

この本は、数ページ後に「逆コンマ演算子」の例を示しています (82 ページ)。

しかし、私にはこれはまったく逆ではないようです..?

例:

これは、通常のカンマ演算子とは逆の方法でしょうか? 結果は同じで、逆ではありません。

こちらが正確なページへのリンクです。例は一番下にあります。

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

perl - 変数に対してgrepを正常に使用すると、空白が出力されます

次のようなファイルを含むディレクトリを開いています。1 つのファイルを次に示します。

2 番目のファイルは次のとおりです。

これが私のコードです:

$line には何も出力されませんが、このコードは、$numberoffastas を出力することで証明されるように、ファイルを開いたときにファイルに表示される ">" の数を正しくカウントします。
$line = 次のようにこのコードを修正するにはどうすればよいですか。

また

ありがとう

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

perl - スカラー コンテキストでの Perl ARGV 値

次の Perl スクリプトがあるとします。

これは出力です:

の出力に困惑していますprint "$ARGV\n"。しようとするprint "$ARGV[-1]\n"と、空の行が STDOUT に出力されます。を直接参照する$ARG[2]と、同様に空の行が表示されます。

を使用するとスクリプトが印刷されるのはなぜfile4ですか$ARGV?

反例として、print "$d\n"の最後の行を取得することを期待して、 を試しましたfile4。予想される出力の代わりに、空の行が表示されました。どのように機能し$ARGVますか?

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

perl - リスト割り当てによる単語カウントはPerlでどのように機能しますか?

次のスニペットがどのように機能するかを正確に理解できません。

$str =~ /\w+/gどうやら左端の割り当てに伝えられている単語のリストを返すことを私は知っています。次に$num、そのリストにスカラー コンテキストを課し、3 になります。

しかし、どういう() = ('abc', 'def', 'ghi')意味ですか?のようなものmy $a = my @b = (3, 5, 8)ですか?もしそうなら、一番右のリストはどのように$numして一番左に転送されますか?