gpt4 book ai didi

string - 如何检查附加 slice 是否等于字符串?

转载 作者:数据小太阳 更新时间:2023-10-29 03:41:13 25 4
gpt4 key购买 nike

所以计划是在 slice 中有一个字符串,例如“a”,一旦它变成“a100”,然后停止运行一个 for 循环,它会在它的末尾添加数字。当我尝试下面的代码时,它说“(不匹配的类型 [] 字符串和字符串)”,这是因为我必须将 slice 转换为字符串吗?如果是这样,我该怎么做?谢谢。

package main

import "fmt"

func main() {
var s []string
s = append(s, "a")
fmt.Println(s)
for i := 0; i <= 1000; i++ {
s = append(s, i)
if s == "a10" {
fmt.Println("Worked", s)
} else {
fmt.Println(s)
}
}
}

最佳答案

您可以通过以下操作将 []string 转换为字符串:

import "strings"

//...

if strings.Join(s, "") == "a10" {
fmt.Println("Worked", s)
} else {
fmt.Println(s)
}

您还需要将 i(一个 int)转换为一个 string,您很可能会使用 strconv.Itoa。最后,您的代码将如下所示:https://play.golang.org/p/gD5b5XFimJ

package main

import (
"fmt"
"strconv"
"strings"
)

func main() {
var s []string
s = append(s, "a")
fmt.Println(s)
for i := 0; i <= 1000; i++ {
s = append(s, strconv.Itoa(i))
if strings.Join(s, "") == "a01" {
fmt.Println("Worked", s)
return
} else {
fmt.Println(s)
}
}
}

尽管如此,您也可以不使用数组并直接附加到字符串(或 []byte)...

package main

import (
"fmt"
"strconv"
)

func main() {
var s := "a"
fmt.Println(s)
for i := 0; i <= 1000; i++ {
s += strconv.Itoa(i)
if s == "a01" {
fmt.Println("Worked", s)
return
} else {
fmt.Println(s)
}
}
}

要每次都重置数组,只需要编写main方法:

for i := 0; i <= 1000; i++ {
s := []string{"a"}
s = append(s, strconv.Itoa(i))
if strings.Join(s, "") == "a10" {
fmt.Println("Worked", s)
return
} else {
fmt.Println(s)
}
}

关于string - 如何检查附加 slice 是否等于字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44573301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com