問題タブ [diamond-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.
java - Java7およびEclipse3.8コンパイラが新しいJava7ダイヤモンド演算子を使用してJDKコードをコンパイルできないのはなぜですか?
asList()
java.util.ArraysのOraclesJDK実装から取得されます。
エラーは
これはどのように機能しますか?Oracleは、私たちが使用しているのと同じコンパイラを使用します。
perl - perl @ARGVでパイプとリダイレクトを見つける
従来の Unix/Linux プログラムを作成する場合、perl はダイアモンド演算子 <> を提供します。引数がまったく渡されないかどうかをテストして、perl スクリプトが STDIN の待機ループに入らないようにする方法を理解しようとしています。
いくつかの出力を実行すると、 <> が機能することが示されますが、引数がない場合、STDIN 入力を待機する必要があり、これは私が望んでいるものではありません。
最初に考えられるのは、@ARGV の最後の引数の番号を保持する $#ARGV をテストすることです。次に、while ループの前に、上記のスクリプトにテストを追加しました。
これでは、望ましい結果が得られませんでした。$#ARGV は、コマンド ラインのリダイレクトとパイプに対して -1 です。このチェック (grabchk.pl) を実行すると、問題が変わり、パイプまたはリダイレクトのケースで <> によってファイルの内容を読み取ることができません。
シェルによって perl に渡されるすべてのコマンド ライン パラメータを見つけるためのより良いテストはありますか?
java - Java 7 の addAll() 呼び出し内でダイヤモンド演算子が機能しないのはなぜですか?
Generics tutorial のこの例を考えてみましょう。
コンパイルする必要があるように見えるのに、最後の行がコンパイルされないのはなぜですか。最初の行は非常によく似た構成を使用しており、問題なくコンパイルされます。
くわしく説明してください。
perl - Perl ダイヤモンド演算子内の奇妙なこと
お願いします、誰でもこれで私を助けることができます:
私はそれがどのように機能するのか理解していません。そしてそれはうまくいきます!生産
出力時。
ダイヤモンドオペレーターの内部で何が起こっているか知っている人はいますか?
perl - Perl: <> から読み取る
<>
Perlでの読み取りは何をしますか? たとえば、次のようにするとどうなりますか?
java - メソッド呼び出しでのJava 7ダイヤモンド操作
これは、ディスカッションに関するフォローアップの質問のようなものです。
Java 7 の addAll() 呼び出し内でダイヤモンド演算子が機能しないのはなぜですか?
Javaチュートリアルから、
http://docs.oracle.com/javase/tutorial/java/generics/gentypeinference.html
ひし形はメソッド呼び出しで機能することが多いことに注意してください。ただし、より明確にするために、ダイヤモンドを主に使用して、宣言されている変数を初期化することをお勧めします
だから、私は最初の行について少し混乱しています。メソッド呼び出しでダイヤモンドが機能するのはいつですか?
ダイヤモンド演算子の仕組みに関するもう少し詳しい説明は、次の場所にあります。
そしてこれから、私は次のことを試しましたが、うまくいきます:
私が持っているとします:
次のような呼び出しは正常にコンパイルされます。
上記のメソッド呼び出しでコンストラクターを呼び出す際の型パラメーターは、コンストラクターf()
への引数 (つまりInteger
) から推測されます。
これは、チュートリアルが言うときの意味ですか
ひし形はメソッド呼び出しで機能することが多いことに注意してください
そうでない場合は、ダイヤモンドがメソッド呼び出しで機能する例を提供してくれる人はいますか?
java - Java 7 ダイヤモンド演算子: 実装が難しかったのはなぜですか?
私は Oracle OTN Virtual Event: Java SE and JavaFX 2.0 (2012 年 2 月 28 日) を見て、新しいダイヤモンド演算子 (そのMap<String, List<String>> myMap = new HashMap<>();
こと) について話しているときに、講演者は、実装は思ったほど簡単ではないと述べました。簡単なトークンの交換。
私の質問はなぜですか?単純に変数の宣言から文字列を取得し、それをダイヤモンド演算子に入れるように実装できないのはなぜですか?
java - Java 7 Diamond 演算子のコンパイル エラー: ArrayList<>();
次のコード行があります。
次の3つのエラーを取得します。
Eclipse 3.7 を使用しています。JDK 7 update 5 をインストールしました。プロジェクトは、ビルド パスで JRE システム ライブラリ [JavaSE1.7] を使用するように設定されています。
IObserver<?>
右側に渡すと問題なくコンパイルされますが、ダイヤモンド演算子を使用する必要があります。
これは設定の問題だと思いますが、何が欠けているのかわかりません。
perl - Perl のダイヤモンド オペレータ (ヌル ファイル ハンドル) が現在読み取っているファイルはどれですか?
コマンドラインで指定されたファイルから読み取るために、Perl のダイヤモンド演算子を使用しています。 <>
のようなメッセージを報告できるようにしたいのです"Trouble on line $. of file $FILENAME"
が、どのファイルが現在ダイヤモンドで使用されているかを知るにはどうすればよいですか?
java - <>を使用して匿名クラスを介してマップを作成する
JDK 1.7Collection
では、たとえば次のHashMap
ように言うことができます。
最後にダイヤモンドが付い<>
ています。
しかし、私がこのようなマップを作成している場合:
ダイヤモンドコンパイラについては、次のように述べています。
... new HashMap<String, String>() {{....
コードをコンパイルするには、次を使用する必要があります。
なんでそうなの?新しいインスタンスを作成しているだけでマップを作成してdiamondを使用できるのに、匿名クラスを介してマップを作成しているとコードがコンパイルされないのはなぜですか?