inflearn logo
강의

講義

知識共有

[コードファクトリー] [入門] Dart言語4時間で完全征服

4강 마지막 yield* -> yield

260

primg679254

投稿した質問数 1

0

4강 마지막 끝날 때요

//stream 사용 위해 패키지 불러와서 써야 함
import 'dart:async';

void main() {
  playAllStream().listen((val){
    print(val);
  });
}

Stream<int> playAllStream() async* {
  //yield* 뒤에 따라오는 stream의 값이 다 return 될 때까지 기다린다.
  yield* calculate(1);
  yield* calculate(1000);
}

Stream<int> calculate(int number) async* {
  for(int i=0; i<5; i++){
    yield i * number;
    
    //async* 로 await를 쓸 수 있다.
    await Future.delayed(Duration(seconds: 1));
  }
}

 

playAllStream() 여기 안에 yield* 를 yield로 바꾸면 결과가

0

0

1

1000

2

2000

이렇게 나올거라고 하셨거든요.

이론적으로 이해는 됐는데, 코드 실행이 안되어서요.

어디서 문제인지 모르겠어요.

에러는 아래와 같습니다.

Error: A value of type 'Stream<int>' can't be assigned to a variable of type 'int'. - 'Stream' is from 'dart:async'. yield calculate(1);

 

flutter 함수형-프로그래밍 객체지향

回答 1

0

codefactory

안녕하세요!

에러 메세지를 잘 읽어보고 분석 해보세요!

Stream<int> 타입이 int 타입에 할당될 수 없다고 돼있습니다.

yield*이 무엇을 반환하는지 생각해보시면 됩니다.

감사합니다!

자료형(실수) 출력 결과 문의

0

55

1

fold 함수 문법이 업데이트 된 것 같은데 맞을까요?

0

47

1

쿠폰 유효기간이 경과했다고 하네요 ㅠㅠ

0

80

2

강사님 덕에 요즘 열심히 수강하고 있습니다

0

102

2

Flutter강좌에 대한 질문이 있습니다.

0

277

2

Set 인덱스 접근 질문입니다

0

188

2

void 궁금한점이 있습니다!

0

160

1

다트 변수 연산 질문

0

138

1

다트 변수 이름 규칙 질문입니다

0

206

2

4강애싱크 프로그래밍에서 12:46에서

0

116

1

궁금한 점이 있습니다!

0

258

2

쿠폰발급이 안되네요 ;;

0

317

2

밑에 질문 사진첨부해서 다시 질문드려요~

0

313

2

클래스안에서 함수 넣을때 요

0

221

2

전 왜 이상태에서 마지막에 Status

0

306

2

쿠폰 적용 안되는데 혹시 수량이 정해져 있는건가요?

0

374

1

toSet(), Set.of(), Set.from() 차이점

0

569

1

안드로이드 스튜디오 에뮬레이터 권장사양

0

543

2

for loop

0

408

1

list map set

1

394

1

2강부터 너무 어렵네요

1

747

2

상속받은 클래스의 named parameter 사용방법이 궁금합니다

1

468

1

진도 관련 문의드립니다.

0

610

1

return과 print의 차이점을 모르겠어요.

1

782

2