3 回答
TA贡献1828条经验 获得超13个赞
在 Go 中逐行打印不带括号的切片中的元素。
评论:我想要没有循环的
例如,
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条经验 获得超4个赞
使用值和括号创建字符串。打印不包括括号的子字符串,瞧。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条经验 获得超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 关注
- 201 浏览
添加回答
举报