aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqiulaidongfeng <2645477756@qq.com>2024-05-09 22:04:57 +0000
committerGopher Robot <gobot@golang.org>2024-05-09 22:12:20 +0000
commit95a3779ebc6456c501fa5d888f8fb842dae58460 (patch)
tree9d0fcd02443d003157d59bc2681a967ee8891058
parent9eebdca8a94d3d47f4973371abf1bc10c626892d (diff)
downloadgo-95a3779ebc6456c501fa5d888f8fb842dae58460.tar.gz
go-95a3779ebc6456c501fa5d888f8fb842dae58460.zip
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 <cherryyz@google.com> Commit-Queue: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com>
-rw-r--r--src/reflect/iter.go8
1 files 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) {