为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Go中逐行打印不带括号的切片中的元素?

如何在Go中逐行打印不带括号的切片中的元素?

Go
拉风的咖菲猫 2023-08-07 18:55:35
package mainimport "fmt"func main() {    var s []int    s = append(s, 2, 3, 4)    printSlice(s)}func printSlice(s []int) {    fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s)}游乐场:https://play.golang.org/p/tx8gmx5eR7B输出:len=3 cap=4 [2 3 4]输出应该是:234我想要它没有循环。
查看完整描述

3 回答

?
慕田峪7331174

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


查看完整回答
反对 回复 2023-08-07
?
慕的地8271018

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


查看完整回答
反对 回复 2023-08-07
?
繁华开满天机

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)

       }

}


查看完整回答
反对 回复 2023-08-07
  • 3 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信