Hi,

this has come up on the issue as well. Robert Griesemer provided an
explanation
<https://github.com/golang/go/issues/56351#issuecomment-1601751291>:

If the argument type (the type of the argument provided to clear) is a type
> parameter (is of type parameter type), all types in its type set (in the
> type set of the constraint corresponding to the type parameter) must be
> maps or slices, and clear performs the operation corresponding to the
> actual type argument (corresponding to the type of the actual type argument
> with which the type parameter was instantiated).


That is, the sentence is about this situation:

func Clear[T, any, S ~[]T](s S) {
    clear(s)
}
func main() {
    Clear(make([]int, 42))
}

In this case, the type of s is S, which is a type parameter. So `clear`
performs the operation corresponding to the type argument - in this example
[]int.

The sentence is a bit confusing (I've seen this question come up four times
now), so it probably should be clarified a bit.

On Wed, Jul 5, 2023 at 9:06 AM Tharaneedharan Vilwanathan <
vdhar...@gmail.com> wrote:

> Hi All,
>
> Go 1.21 introduces a new clear() builtin function. I see this text in
> https://tip.golang.org/ref/spec#Clear:
>
> clear(t) type parameter see below
>
> If the argument type is a type parameter
> <https://tip.golang.org/ref/spec#Type_parameter_declarations>, all types
> in its type set must be maps or slices, and clear performs the operation
> corresponding to the actual type argument.
>
> I am not able to make sense of it. What does this mean? Any examples on
> the usage?
>
> Appreciate your help.
>
> Thanks
> dharani
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/CAN-HoCn99D-m71aJr3DRzCJvk_c7h8OhG2O4wPC-1Wd2ruEYNg%40mail.gmail.com
> <https://groups.google.com/d/msgid/golang-nuts/CAN-HoCn99D-m71aJr3DRzCJvk_c7h8OhG2O4wPC-1Wd2ruEYNg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAEkBMfFPof4VYTQWoAGN-B3FtvZJ%3D%3Dxs5s%3D-P%2BEwc%3DO%2BafFjYw%40mail.gmail.com.

Reply via email to