2 回答

TA貢獻1993條經驗 獲得超6個贊
你有兩種方法:
使用
cleaned := make([]interface{},0)
and 調用cleaned = append(cleaned, your_data)
聲明一個空數組:
var cleaned []interface{}{}

TA貢獻1805條經驗 獲得超9個贊
cleaned := []interface{}{}
我怎樣才能用 make() 做同樣的事情?
例如,
package main
import (
? ? "fmt"
)
func main() {
? ? {
? ? ? ? cleaned := []interface{}{}
? ? ? ? fmt.Println(len(cleaned), cap(cleaned), cleaned)
? ? }
? ? // OR
? ? {
? ? ? ? cleaned := make([]interface{}, 0)
? ? ? ? fmt.Println(len(cleaned), cap(cleaned), cleaned)
? ? }
? ? // OR
? ? {
? ? ? ? cleaned := make([]interface{}, 0, 0)
? ? ? ? fmt.Println(len(cleaned), cap(cleaned), cleaned)
? ? }
}
游樂場: https: //play.golang.org/p/qndsxIKWjEp
輸出:
0 0 []
0 0 []
0 0 []
聲明空切片時,更喜歡
var?t?[]string超過
t?:=?[]string{}前者聲明一個 nil 切片值,而后者非 nil 但長度為零。它們在功能上是等效的——它們的 len 和 cap 都為零——但 nil 切片是首選樣式。
. . .
例如,
package main
import (
? ? "fmt"
)
func main() {
? ? {
? ? ? ? cleaned := []interface{}{}
? ? ? ? fmt.Println(len(cleaned), cap(cleaned), cleaned, cleaned == nil)
? ? }
? ? // OR
? ? {
? ? ? ? cleaned := make([]interface{}, 0)
? ? ? ? fmt.Println(len(cleaned), cap(cleaned), cleaned, cleaned == nil)
? ? }
? ? // OR
? ? {
? ? ? ? cleaned := make([]interface{}, 0, 0)
? ? ? ? fmt.Println(len(cleaned), cap(cleaned), cleaned, cleaned == nil)
? ? }
? ? // OR
? ? {
? ? ? ? var cleaned []interface{}
? ? ? ? fmt.Println(len(cleaned), cap(cleaned), cleaned, cleaned == nil)
? ? }
}
游樂場:https://play.golang.org/p/9cZOOS2F9qI
輸出:
0 0 [] false
0 0 [] false
0 0 [] false
0 0 [] true
- 2 回答
- 0 關注
- 174 瀏覽
添加回答
舉報