問題タブ [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.
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オブジェクトを動的に追加しようとしていたため、ここで解決策を見つけたと思います。
perl - の動作。and 、連結と解析のための Perl の演算子
.
Perl でand演算子をいじろうとしていたところ、,
私には理解できなかった奇妙なものが得られました。
これを実行すると:
出力は次のとおりです。
私が理解できるのは、ドット演算子の前後の両方のテキストを文字列として扱い、それらを連結していることです。
しかし、コンマはどうですか?省略されて連結されないのはなぜですか?
c++ - ポインター メンバー変数を使用して構造体にデータを入力する
ここで次に何をすべきかを考えるのに時間がかかっています。基本的に、このプログラムはポインタ変数(*)と動的に割り当てられたメモリ(例: "int *variable = new int")以外は使用できません。私は他のすべての上に構造を作成する必要があります !
以下にいくつかのコードを含めました。すべての cin ">>" 演算子の下に赤い線があり、「エラー: 演算子 ">>" がこれらのオペランドに一致しません」というメッセージが表示されます。コードの「one.score2」部分 (最後の行) の「one」の下に赤い線があり、「エラー: 式には整数型またはスコープ外の列挙型が必要です」というメッセージがあります。
コードを機能させるにはどうすればよいですか?
android - ドット演算子を使用した Assert メソッド
これは答えのない教科書の問題なので、ここで質問する必要があります。
「単純な」バージョンは次のとおりです。
「全体」バージョンにドット演算子を使用する必要がある場合、これでしょうか?
私の言いたいことを理解していただけると幸いです:)
haskell - Haskell 関数合成 - 間違って推論された型
次の Haskell コードでは、関数 typeError は型チェックを行いません。
コメントを外すと、GHC は次のエラーを生成します。
理由がわかりません。a
と統合できるはずです[a0]
-それらは独立した型変数です。これはまさに for typeCheck
- と推測される型ですが、.
演算子が使用されている場合はそうではありません。
Hugs は、非常によく似た偽のエラー メッセージを生成します。
さらに、これはうまくいきます:
この問題は、[[a]] または [[[a]]] 以上でのみ発生します。ここでの取引は何ですか?
c++ - Objective-C で .(ドット) 演算子が正確に行うこと
私は独学で C と C++ を学び、現在は Objective-C を学ぼうとしていますが、クラスのインスタンスで使用されるドット演算子に少し戸惑っています。クラスを宣言したとします。
明らかに、これは Objective-C では機能しますが、C++ または C (構造体の場合) では機能しません。演算子 -> を使用する必要があります。だから私は、Objective-C で .(dot) 演算子が正確に何をするか、および ObjC と C の 2 つの異なる意味が、Objective-C がC の厳密なスーパーセット。
php - PHPでドットをドット演算子としてではなくドットとして扱う方法
php.iでこれを行う方法はありますか?私はphpを扱います。連結演算子としてですが、文字列の間に置かれたときにphpにドットとして扱わせたい
このような
結果を表示します
wwwexamplecom
代わりに私はそれが欲しい
www.example.com
私はまだ初心者なので、私の質問があまりにも初心者に聞こえる場合は申し訳ありません
c++ - 基本サブオブジェクトにアクセスするためのドットまたは矢印演算子とスコープ解決演算子
C++
Base
基本クラスと派生クラスが与えられた場合、のDerived
コンストラクターによって最初に構築されるDerived
のはBase
サブオブジェクトです。これはサブオブジェクトと呼ばれるため、オブジェクトでドット演算子を使用することにより、他のメンバー オブジェクトと同様にクライアント コードからアクセスできると想定しましたDerived
。Derived
また、 によって の実装コードからアクセスできると仮定しましたthis->Base
。セミコロンが後に続く、既に初期化されているオブジェクトの名前だけで構成されるステートメントは、コンパイルする必要がありますが、効果はありません。そのロジックに従って、Derived
objectを指定して、次のmyderived
ことを試しました:myderived.Base;
クライアント コードthis->Base;
内およびDerived
の実装内で、どちらのステートメントもコンパイルされません。
なんで?Base
は、それ自体がBase
クラスの名前であり、オブジェクトの名前ではないことを知っていBase
ます。しかし、 (クライアント コード) または(実装コード) プレフィックスBase
によって修飾されたものは基本サブオブジェクトを参照すると思いました。以下のコードを参照してください。これは (コメントアウトされたコードは別として) VC12 および g++ 4.8 で動作します。extendsとの定義はデータ メンバーを宣言するので、私のオブジェクトには 2 つが含まれている必要がありますmyderived.
this->
Base
Base
Derived
Derived
Base
Derived
Base
membase
Derived
Base
オブジェクト。コンパイルの成功がコンパイラ標準の不適合の結果ではないと仮定すると、2 つの異なるオブジェクトのint
メンバーに異なる値を示すコンソール出力 (コメント内) は、 inの ctor 初期化子が継承されたサブオブジェクトは、宣言されたデータ メンバー オブジェクトを参照します。の ctor 初期化子では、オブジェクトやクラスだけでなく、継承されたサブオブジェクトを具体的に参照します。n
Base
Derived
Base
Base
membase
Derived
Base
Base
Base
繰り返しますが、継承されたサブオブジェクトを一意に参照してコンパイルするべきではありません
myderived.Base;
か?this->Base;
Base
は、サブオブジェクト、クラス、または何かを参照してい
Base
ますか?myderived.Base
this->Base
Base
Base
一般に、継承された基本サブオブジェクトは派生クラスのデータ メンバーと見なされますか?
の観点から、
Derived
のコンストラクター初期化子のBase
コンテキスト内で継承されたサブオブジェクトのみを参照し、の ctor 初期化子の外側のクラスのみを参照しますか?Derived
Base
Derived
の実装コードとクライアント コードで「
Base
オブジェクトの継承されたサブオブジェクト」Derived
を表現するにはどうすればよいでしょうか。Base
Derived
Derived
でスコープ解決演算子を使用すると、
myderived.Base::foo()
はfoo()
のメソッドでありBase
、VC12 および g++ 4.8 でコンパイルされます。とドット演算子で修飾されているため、これBase
は のデータ メンバであることを意味しますか? もしそうなら、それはクラスですか、それともサブオブジェクトですか?myderived
myderived
Base
Base
Base
しかし
myderived.Base.foo()
、コンパイルされません。オブジェクトのメンバーのAFAIKアクセスは、オブジェクト名とドット演算子によってクライアントコードで修飾されています。オブジェクト名とドット演算子の代わりに、スコープ解決演算子によって修飾される 2 種類のものは、(a) 名前空間に属するものへの外部アクセス、および (b) 静的データ メンバーの名前とメンバー関数の名前です。クラス定義の外側で定義された定義の場合、 のBase
前にあるはインスタンスではなくクラス::
を参照します。これは in が名前空間であるか、クラスを参照していることを意味しますか?Base
Base
Base
myderived.Base
もしそうなら、それは名前空間であるか、それとも
::
のメンバーが後に続くかどうかに基づいて条件付きのクラスを参照していますBase
か?#7 の答えが「はい」の場合、その理由は何ですか? 次のロジックとは矛盾しているように思われます: 名前空間で 1 つの変数を囲んでも、それ自体では、名前空間がその変数の型の他のインスタンスを囲んだり構築したりすることはできません。名前空間は、その型のインスタンスを 1 つだけ所有します。つまり、その型に含まれる変数です。静的データ メンバーのように、クラスの一部であるメンバーにも同じことが言えます。このクラスは、その型のインスタンスを 1 つだけ所有します。つまり、クラスに含まれる静的データ メンバーです。対照的に、クラスのインスタンスと同じ数の同じ名前の非静的データ メンバーがクラスに存在します。
指定されたメソッド
h()
およびオブジェクトは、VC12 および g++ 4.8 でコンパイルされます。さらに、g++ 4.8 では、 のように、そのステートメントで任意の数の余分な s を使用できます。このようなステートメントは、 が のメンバーであることを暗示しているようです。しかし、VC12 は. しかし、 objectが与えられた場合、VC12 は問題なくコンパイルされます。これは、VC12 がクラスをそれ自体のメンバーとして扱っても問題ないことも意味します。しかし、それは、以前の声明を編集できないことと矛盾しています。また、VC12 は、任意の数の余分なs (たとえば) を持つのバージョンをコンパイルできませんが、g++ はコンパイルできます。もしあれば、どのコンパイラが正しいですか?Base
Derived
myderived
myderived.Base::h();
Base::
myderived.Base::Base::h();
Base
Base
error C3083: '{ctor}': the symbol to the left of a '::' must be a type
Base
mybase
mybase.Base::h();
mybase.Base::h();
Base::
mybase.Base::Base::h()
いずれにせよ、それは名前空間またはクラスがそれ自体を含むことができるということですか?
int
グローバル変数が与えられた場合x
、ステートメント::::x;
(2 つのスコープ解決演算子を含む) はどちらのコンパイラでもコンパイルされないため、グローバル スコープにはグローバル スコープが含まれていないと想定しています。
java - Java は new 演算子でコンストラクタ (またはオブジェクト) を暗黙的に使用しますか?
new
今日、セパレーター ( .
、または「ドット演算子」)と一緒に演算子を使用できることを学びました。これは、Java が new 演算子のすべての出現に対して暗黙的に同じ手法を使用するかどうか疑問に思いました。
次のステートメントは、新しい「InnerClass オブジェクト」を作成します。を使用して、新しい ParentClass オブジェクトでこれを行います.new
。ただし、new
このステートメントの最初の演算子の前にコンストラクター (またはオブジェクト) がありません。では、Java はコンパイル時に 1 つ追加しますか? このステートメントに( ) を明示的に追加しようとMain()
しましたが、コードはコンパイルされません。