エラーに追加して返せる値が1つ以 下に限定される func seq2(yield func(v int, err error) bool) { v, err := something() if !yield(v, nil) { return } } https://go.dev/play/p/1iU0-ide6A0 https://go.dev/play/p/42m8W8Q6v_R // Push型での利用 for v, err := range seq2 { if err != nil { panic(err) } /* 何らかの処理 */ } // Pull型での利用 next, stop := iter.Pull2(seq2) v, err, ok := next() if err != nil {/* エラー処理 */} if !ok {/* 終了処理 */}