タグ付けされた質問 「yield-keyword」

8
PHPのyieldとはどういう意味ですか?
私は最近このコードにつまずいた: function xrange($min, $max) { for ($i = $min; $i <= $max; $i++) { yield $i; } } このyieldキーワードを見たことがありません。取得したコードを実行しようとしています 解析エラー:構文エラー、行xでの予期しないT_VARIABLE それで、このyieldキーワードは何ですか?それは有効なPHPですか?もしそうなら、それをどのように使用しますか?

9
yield()の主な用途は何ですか?join()やinterrupt()とどのように違うのですか?
yield()Java でのメソッドの使用について、特に以下のコード例で少し混乱しています。また、yield()は「スレッドの実行を防止するために使用される」ことも読みました。 私の質問は: 以下のコードは、使用時と使用yield()しない時の両方で同じ出力になると思います。これは正しいです? 実際、主な用途はyield()何ですか? およびメソッドとはどのようにyield()異なりますか?join()interrupt() コード例: public class MyRunnable implements Runnable { public static void main(String[] args) { Thread t = new Thread(new MyRunnable()); t.start(); for(int i=0; i<5; i++) { System.out.println("Inside main"); } } public void run() { for(int i=0; i<5; i++) { System.out.println("Inside run"); Thread.yield(); } } } …

4
キャッチ付きのtryブロック内にreturnが表示されないのはなぜですか?
以下は大丈夫です: try { Console.WriteLine("Before"); yield return 1; Console.WriteLine("After"); } finally { Console.WriteLine("Done"); } finallyブロックは、全部の実行が終了したとき(実行さIEnumerator<T>担体はIDisposable、それが終了する前に、列挙が放棄された場合でも、これを確実にするための方法を提供します)。 しかし、これは大丈夫ではありません: try { Console.WriteLine("Before"); yield return 1; // error CS1626: Cannot yield a value in the body of a try block with a catch clause Console.WriteLine("After"); } catch (Exception e) { Console.WriteLine(e.Message); } (議論のために)WriteLinetryブロック内の呼び出しのいずれかによって例外がスローされたと仮定します。catchブロックで実行を続けることの問題は何ですか? もちろん、yield return部分は(現在のところ)何もスローすることができませんが、なぜそれが原因で、try/のcatch前または後にスローされた例外を処理するための囲み/ …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.