3 回答

TA貢獻1828條經(jīng)驗 獲得超13個贊
在 Go 中逐行打印不帶括號的切片中的元素。
評論:我想要沒有循環(huán)的
例如,
package main
import "fmt"
func printSlice(s []int) {
if len(s) == 0 {
return
}
fmt.Println(s[0])
printSlice(s[1:])
}
func main() {
var s []int
s = append(s, 2, 3, 4)
printSlice(s)
}
游樂場:https://play.golang.org/p/ISXdbjTrfSt
輸出:
2
3
4

TA貢獻1796條經(jīng)驗 獲得超4個贊
使用值和括號創(chuàng)建字符串。打印不包括括號的子字符串,瞧。strings.Trim 或者按照 JimB 在評論中的建議使用。
temp := fmt.Sprintf("%v", s)
fmt.Printf("len=%d cap=%d \n%v\n", len(s), cap(s), strings.Join(strings.Split(temp[1:len(temp)-1], " "), "\n"))
輸出:
len=3 cap=4
2
3
4

TA貢獻1816條經(jīng)驗 獲得超4個贊
如果您不想使用 fmt.Println 而只使用 printf 和切片范圍而不計算 len,那么這樣的方法就可以工作。
package main
import "fmt"
func main() {
? ? var s []int
? ? s = append(s, 2, 3, 4)
? ? printSlice(s)
}
func printSlice(s []int) {
? ? ? ?for _, value:= range s {
? ? ? ? ?fmt.Printf("%v\n", value)
? ? ? ?}
}
- 3 回答
- 0 關(guān)注
- 255 瀏覽
添加回答
舉報