From 95a3779ebc6456c501fa5d888f8fb842dae58460 Mon Sep 17 00:00:00 2001 From: qiulaidongfeng <2645477756@qq.com> Date: Thu, 9 May 2024 22:04:57 +0000 Subject: [PATCH] reflect: clarify documentation for Value.Seq/Seq2 For #66056 Change-Id: Ib47c07b2527d8213584b72e2575a353f2deaed68 GitHub-Last-Rev: 525a5c3fa469fcccfb1ab67b61c7d12e024cfb33 GitHub-Pull-Request: golang/go#67268 Reviewed-on: https://go-review.googlesource.com/c/go/+/584515 Reviewed-by: Cherry Mui Commit-Queue: Ian Lance Taylor LUCI-TryBot-Result: Go LUCI Auto-Submit: Ian Lance Taylor Reviewed-by: Ian Lance Taylor --- src/reflect/iter.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/reflect/iter.go b/src/reflect/iter.go index 539872ddd7..85f8d8c999 100644 --- a/src/reflect/iter.go +++ b/src/reflect/iter.go @@ -6,7 +6,7 @@ package reflect import "iter" -// Seq returns an iter.Seq[reflect.Value] that loops over the elements of v. +// Seq returns an iter.Seq[Value] that loops over the elements of v. // If v's kind is Func, it must be a function that has no results and // that takes a single argument of type func(T) bool for some type T. // If v's kind is Pointer, the pointer element type must have kind Array. @@ -87,7 +87,11 @@ func (v Value) Seq() iter.Seq[Value] { panic("reflect: " + v.Type().String() + " cannot produce iter.Seq[Value]") } -// Seq2 is like Seq but for two values. +// Seq2 returns an iter.Seq2[Value, Value] that loops over the elements of v. +// If v's kind is Func, it must be a function that has no results and +// that takes a single argument of type func(K, V) bool for some type K, V. +// If v's kind is Pointer, the pointer element type must have kind Array. +// Otherwise v's kind must be Array, Map, Slice, or String. func (v Value) Seq2() iter.Seq2[Value, Value] { if canRangeFunc2(v.typ()) { return func(yield func(Value, Value) bool) { -- 2.48.1