// run // Copyright 2022 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import "math" func checkClearSlice() { s := []int{1, 2, 3} clear(s) for i := range s { if s[i] != 0 { panic("clear not zeroing slice elem") } } clear([]int{}) } func checkClearMap() { m1 := make(map[int]int) m1[0] = 0 m1[1] = 1 clear(m1) if len(m1) != 0 { panic("m1 is not cleared") } // map contains NaN keys is also cleared. m2 := make(map[float64]int) m2[math.NaN()] = 1 m2[math.NaN()] = 1 clear(m2) if len(m2) != 0 { panic("m2 is not cleared") } clear(map[int]int{}) } func main() { checkClearSlice() checkClearMap() }