clear
函式只接收slice或map參數,效果分別如下。
Clear slice
當輸入為slice時,clear
函式會將其中的元素轉為zero value,因此長度不變。
main.go
package main
import "fmt"
type Employee struct {
Id int
Name string
}
func main() {
ints := []int{1, 2, 3}
clear(ints)
fmt.Println(ints) // [0 0 0]
fmt.Println(len(ints)) // 3
emps := []Employee{
{1, "john"},
{2, "mary"},
}
clear(emps)
fmt.Println(emps) // [{0 } {0 }]
}
執行印出以下:
[0 0 0]
3
[{0 } {0 }]
Clear map
當輸入為map時,clear
函式會將其中的元素清空,所以長度為0。
main.go
package main
import "fmt"
type Employee struct {
Id int
Name string
}
func main() {
intMap := map[int]string{
1: "a",
2: "b",
3: "c",
}
clear(intMap)
fmt.Println(intMap) // map[]
fmt.Println(len(intMap)) // 0
empMap := map[int]Employee{
1: {1, "john"},
2: {2, "mary"},
}
clear(empMap)
fmt.Println(empMap) // map[]
}
執行印出以下:
map[]
0
map[]
沒有留言:
張貼留言