問題タブ [dot-operator]

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

php - ディレクトリパスをjavascriptオブジェクトに変換する

PHPのディレクトリパス/ファイルのリストは次のようになっています。

これらをjavascriptオブジェクトに変換したいと思います。「/」をピリオドに変換して、次のように言うことを考えました。

私が抱えている唯一の問題は、ファイル名またはディレクトリが数字で始まるかどうかです。つまり、次のように言うことはできません。files.001.foo = "bar";

数字で始まる名前を処理するには、ドット演算子をオーバーロードする必要があると思います。それが最善の方法ですか、それとも別の方法がありますか?

私は基本的に"x1x2...xn/y1y2...yn/..."、x_i、y_i、z_iなどが「/」以外の文字である形式のphp文字列をネストされたjavascriptオブジェクトに解析しようとしていますx1x2x3...xn.y1y2...yn.z1z2z3...zn = {};。このユーザーは、区切られた文字列(彼の場合は「_」)に基づいてjavascriptオブジェクトを動的に追加しようとしていたため、ここで解決策を見つけたと思います。

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

perl - の動作。and 、連結と解析のための Perl の演算子

.Perl でand演算子をいじろうとしていたところ、,私には理解できなかった奇妙なものが得られました。

これを実行すると:

出力は次のとおりです。

私が理解できるのは、ドット演算子の前後の両方のテキストを文字列として扱い、それらを連結していることです。

しかし、コンマはどうですか?省略されて連結されないのはなぜですか?

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

c++ - ポインター メンバー変数を使用して構造体にデータを入力する

ここで次に何をすべきかを考えるのに時間がかかっています。基本的に、このプログラムはポインタ変数(*)と動的に割り当てられたメモリ(例: "int *variable = new int")以外は使用できません。私は他のすべての上に構造を作成する必要があります !

以下にいくつかのコードを含めました。すべての cin ">>" 演算子の下に赤い線があり、「エラー: 演算子 ">>" がこれらのオペランドに一致しません」というメッセージが表示されます。コードの「one.score2」部分 (最後の行) の「one」の下に赤い線があり、「エラー: 式には整数型またはスコープ外の列挙型が必要です」というメッセージがあります。

コードを機能させるにはどうすればよいですか?

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

android - ドット演算子を使用した Assert メソッド

これは答えのない教科書の問題なので、ここで質問する必要があります。

「単純な」バージョンは次のとおりです。

「全体」バージョンにドット演算子を使用する必要がある場合、これでしょうか?

私の言いたいことを理解していただけると幸いです:)

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

haskell - Haskell 関数合成 - 間違って推論された型

次の Haskell コードでは、関数 typeError は型チェックを行いません。

コメントを外すと、GHC は次のエラーを生成します。

理由がわかりません。aと統合できるはずです[a0]-それらは独立した型変数です。これはまさに for typeCheck- と推測される型ですが、.演算子が使用されている場合はそうではありません。

Hugs は、非常によく似た偽のエラー メッセージを生成します。

さらに、これはうまくいきます:

この問題は、[[a]] または [[[a]]] 以上でのみ発生します。ここでの取引は何ですか?

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

c++ - Objective-C で .(ドット) 演算子が正確に行うこと

私は独学で C と C++ を学び、現在は Objective-C を学ぼうとしていますが、クラスのインスタンスで使用されるドット演算子に少し戸惑っています。クラスを宣言したとします。

明らかに、これは Objective-C では機能しますが、C++ または C (構造体の場合) では機能しません。演算子 -> を使用する必要があります。だから私は、Objective-C で .(dot) 演算子が正確に何をするか、および ObjC と C の 2 つの異なる意味が、Objective-C がC の厳密なスーパーセット。

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

php - PHPでドットをドット演算子としてではなくドットとして扱う方法

php.iでこれを行う方法はありますか?私はphpを扱います。連結演算子としてですが、文字列の間に置かれたときにphpにドットとして扱わせたい

このような

結果を表示します

wwwexamplecom

代わりに私はそれが欲しい

www.example.com

私はまだ初心者なので、私の質問があまりにも初心者に聞こえる場合は申し訳ありません

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

c++ - 基本サブオブジェクトにアクセスするためのドットまたは矢印演算子とスコープ解決演算子

C++

Base基本クラスと派生クラスが与えられた場合、のDerivedコンストラクターによって最初に構築されるDerivedのはBaseサブオブジェクトです。これはサブオブジェクトと呼ばれるため、オブジェクトでドット演算子を使用することにより、他のメンバー オブジェクトと同様にクライアント コードからアクセスできると想定しましたDerivedDerivedまた、 によって の実装コードからアクセスできると仮定しましたthis->Base。セミコロンが後に続く、既に初期化されているオブジェクトの名前だけで構成されるステートメントは、コンパイルする必要がありますが、効果はありません。そのロジックに従って、Derivedobjectを指定して、次のmyderivedことを試しました:myderived.Base;クライアント コードthis->Base;内およびDerivedの実装内で、どちらのステートメントもコンパイルされません。

なんで?Baseは、それ自体がBaseクラスの名前であり、オブジェクトの名前ではないことを知っていBaseます。しかし、 (クライアント コード) または(実装コード) プレフィックスBaseによって修飾されたものは基本サブオブジェクトを参照すると思いました。以下のコードを参照してください。これは (コメントアウトされたコードは別として) VC12 および g++ 4.8 で動作します。extendsとの定義はデータ メンバーを宣言するので、私のオブジェクトには 2 つが含まれている必要がありますmyderived.this->BaseBaseDerivedDerivedBaseDerivedBasemembaseDerivedBaseオブジェクト。コンパイルの成功がコンパイラ標準の不適合の結果ではないと仮定すると、2 つの異なるオブジェクトのintメンバーに異なる値を示すコンソール出力 (コメント内) は、 inの ctor 初期化子が継承されたサブオブジェクトは、宣言されたデータ メンバー オブジェクトを参照します。の ctor 初期化子では、オブジェクトやクラスだけでなく、継承されたサブオブジェクトを具体的に参照します。nBaseDerivedBaseBasemembaseDerivedBaseBaseBase

  1. 繰り返しますが、継承されたサブオブジェクトを一意に参照してコンパイルするべきではありませんmyderived.Base;か?this->Base;Base

  2. は、サブオブジェクト、クラス、または何かを参照していBaseますか?myderived.Basethis->BaseBaseBase

  3. 一般に、継承された基本サブオブジェクトは派生クラスのデータ メンバーと見なされますか?

  4. の観点から、Derivedのコンストラクター初期化子のBaseコンテキスト内で継承されたサブオブジェクトのみを参照し、の ctor 初期化子の外側のクラスのみを参照しますか?DerivedBaseDerived

  5. の実装コードとクライアント コードで「Baseオブジェクトの継承されたサブオブジェクト」Derivedを表現するにはどうすればよいでしょうか。BaseDerivedDerived

  6. でスコープ解決演算子を使用すると、myderived.Base::foo()foo()のメソッドでありBase、VC12 および g++ 4.8 でコンパイルされます。とドット演算子で修飾されているため、これBaseは のデータ メンバであることを意味しますか? もしそうなら、それはクラスですか、それともサブオブジェクトですか?myderivedmyderivedBaseBaseBase

  7. しかしmyderived.Base.foo()、コンパイルされません。オブジェクトのメンバーのAFAIKアクセスは、オブジェクト名とドット演算子によってクライアントコードで修飾されています。オブジェクト名とドット演算子の代わりに、スコープ解決演算子によって修飾される 2 種類のものは、(a) 名前空間に属するものへの外部アクセス、および (b) 静的データ メンバーの名前とメンバー関数の名前です。クラス定義の外側で定義された定義の場合、 のBase前にあるはインスタンスではなくクラス::を参照します。これは in が名前空間であるか、クラスを参照していることを意味しますか?BaseBaseBasemyderived.Base

  8. もしそうなら、それは名前空間であるか、それとも::のメンバーが後に続くかどうかに基づいて条件付きのクラスを参照していますBaseか?

  9. #7 の答えが「はい」の場合、その理由は何ですか? 次のロジックとは矛盾しているように思われます: 名前空間で 1 つの変数を囲んでも、それ自体では、名前空間がその変数の型の他のインスタンスを囲んだり構築したりすることはできません。名前空間は、その型のインスタンスを 1 つだけ所有します。つまり、その型に含まれる変数です。静的データ メンバーのように、クラスの一部であるメンバーにも同じことが言えます。このクラスは、その型のインスタンスを 1 つだけ所有します。つまり、クラスに含まれる静的データ メンバーです。対照的に、クラスのインスタンスと同じ数の同じ名前の非静的データ メンバーがクラスに存在します。

  10. 指定されたメソッドh()およびオブジェクトは、VC12 および g++ 4.8 でコンパイルされます。さらに、g++ 4.8 では、 のように、そのステートメントで任意の数の余分な s を使用できます。このようなステートメントは、 が のメンバーであることを暗示しているようです。しかし、VC12 は. しかし、 objectが与えられた場合、VC12 は問題なくコンパイルされます。これは、VC12 がクラスをそれ自体のメンバーとして扱っても問題ないことも意味します。しかし、それは、以前の声明を編集できないことと矛盾しています。また、VC12 は、任意の数の余分なs (たとえば) を持つのバージョンをコンパイルできませんが、g++ はコンパイルできます。もしあれば、どのコンパイラが正しいですか?BaseDerivedmyderivedmyderived.Base::h();Base::myderived.Base::Base::h();BaseBaseerror C3083: '{ctor}': the symbol to the left of a '::' must be a typeBasemybasemybase.Base::h();mybase.Base::h();Base::mybase.Base::Base::h()

  11. いずれにせよ、それは名前空間またはクラスがそれ自体を含むことができるということですか? intグローバル変数が与えられた場合x、ステートメント::::x;(2 つのスコープ解決演算子を含む) はどちらのコンパイラでもコンパイルされないため、グローバル スコープにはグローバル スコープが含まれていないと想定しています。

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

java - Java は new 演算子でコンストラクタ (またはオブジェクト) を暗黙的に使用しますか?

new今日、セパレーター ( .、または「ドット演算子」)と一緒に演算子を使用できることを学びました。これは、Java が new 演算子のすべての出現に対して暗黙的に同じ手法を使用するかどうか疑問に思いました。

次のステートメントは、新しい「InnerClass オブジェクト」を作成します。を使用して、新しい ParentClass オブジェクトでこれを行います.new。ただし、newこのステートメントの最初の演算子の前にコンストラクター (またはオブジェクト) がありません。では、Java はコンパイル時に 1 つ追加しますか? このステートメントに( ) を明示的に追加しようとMain()しましたが、コードはコンパイルされません。