婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > php和C#的yield迭代器實現方法對比分析

php和C#的yield迭代器實現方法對比分析

熱門標簽:江西手機自動外呼防封系統是什么 外呼系統撥打暫時無法接通 怎么向銷售公司推銷外呼系統 高德地圖標注家 廣州防封卡外呼系統多少錢一個月 廣東地市地圖標注 仁和怎么申請400開頭的電話 哪里辦理400電話 長春人工外呼系統服務商

本文實例講述了php和C#的yield迭代器實現方法對比。分享給大家供大家參考,具體如下:

yield關鍵字是用來方便實現迭代器的,免去了手工寫迭代器的繁瑣。迭代器常被用來實現協程,所以大部分的協程中都有yield關鍵字,可以參看unity3D的協程。

C#版本:

函數的返回類型必須為 IEnumerable、IEnumerableT>、IEnumerator 或 IEnumeratorT>。

IEnumerable表示一個類可以迭代,也就是可以用foreach遍歷,IEnumerator是真正的迭代器實現,IEnumerable和IEnumerator一個是使用迭代器的接口,一個是實現迭代器的接口。

C#是怎么用yield實現迭代器的呢?其實是編譯器根據yield關鍵字生成了內部類,反編譯一下就可以看到。

using System.Collections;
class Program
{
   //返回IEnumerable接口,其實返回了編譯器生成的內部類
  public static IEnumerable fib(int n)
  {
    int cur = 1;
    int prev = 0;
    for (int i = 0; i  n; i++)
    {
      yield return cur;
      int temp = cur;
      cur = prev + cur;
      prev = temp;
    }
  }
  static void Main()
  {
    // Display powers of 2 up to the exponent 8:
    foreach (int i in fib(9))
    {
      Console.Write("{0} ", i);
    }
  }
}
// prints: 1 1 2 3 5 8 13 21 34

php版本:

函數返回類Generator,而類Generator實現了迭代器接口Iterator。

?php
//返回Iterator接口,php解釋器幫我們返回了Generator類
function fib($n)
{
  $cur = 1;
  $prev = 0;
  for ($i = 0; $i  $n; $i++) {
    yield $cur;
    $temp = $cur;
    $cur = $prev + $cur;
    $prev = $temp;
  }
}
$fibs = fib(9);
foreach ($fibs as $fib) {
  echo " " . $fib;
}
// prints: 1 1 2 3 5 8 13 21 34

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • C# Entity Framework中的IQueryable和IQueryProvider詳解
  • C#中HttpWebRequest、WebClient、HttpClient的使用詳解
  • C# Distinct和重寫IEqualityComparer時要知道的二三事
  • C#中Task.Yield的用途深入講解
  • C# DataGridView綁定數據源的方法
  • 詳解C# WebApi 接口測試工具:WebApiTestClient
  • C#中WPF ListView綁定數據的實例詳解
  • C# IQueryable及IEnumerable區別解析

標簽:濮陽 海北 文山 黔東 廈門 湘西 梅河口 惠州

巨人網絡通訊聲明:本文標題《php和C#的yield迭代器實現方法對比分析》,本文關鍵詞  php,和,的,yield,迭代,器,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php和C#的yield迭代器實現方法對比分析》相關的同類信息!
  • 本頁收集關于php和C#的yield迭代器實現方法對比分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 洪洞县| 秦安县| 漳浦县| 呼和浩特市| 布拖县| 洞头县| 延寿县| 丰原市| 皋兰县| 鹤壁市| 鸡泽县| 额济纳旗| 阿克| 调兵山市| 邹城市| 阿城市| 招远市| 浪卡子县| 嘉定区| 棋牌| 隆尧县| 霍山县| 招远市| 资兴市| 鄢陵县| 重庆市| 张家界市| 邵东县| 临汾市| 军事| 水富县| 奉化市| 思茅市| 游戏| 西华县| 怀柔区| 青州市| 龙海市| 东平县| 仪征市| 鄄城县|