php 와 C\#의 yield 교체 기 실현 방법 비교 분석
yield 키 워드 는 교체 기 를 편리 하 게 실현 하 는 데 사용 되 며,수 동 교체 기의 번 거 로 움 을 면 합 니 다.교체 기 는 협 정 을 실현 하 는 데 자주 사용 되 기 때문에 대부분의 협 정 에는 yield 키워드 가 있 으 며 유 니 티 3D 의 협 정 을 참조 할 수 있 습 니 다.
C\#버 전:
함수 의 반환 유형 은 IEnumerable,IEnumerable
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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.