func change(a string) string {
// fmt.Println(a)
v := ""
if string(a) == "a" {
return "A"
v += a
}
return ""
}
func main() {
fmt.Println(change("a"))
fmt.Println(change("ab"))
}
我是Go和编程的新手,实际上,现在的输出是A,但为什么当我将变量值更改为“ab”时,它不会返回任何值,输出必须是“Ab”
1条答案
按热度按时间oprakyz71#
所以,你基本上想把输入中的所有
a
都改成A
。现在你只需要检查 whole 字符串是否等于"a"
,以及"ab"
是否不等于"a"
。因此,在第二种情况下,程序以return ""
结束。通常情况下,您可以使用
strings.ReplaceAll("abaaba","a","A")
之类的工具来实现您想要的功能。另请注意,
c
是rune
类型,因此必须使用string(c)
转换为string
。编辑:正如在注解中所指出的,实际上这并不是构造新
string
的最佳方法。除了从rune
到string
的转换的麻烦之外,我们每次添加一些内容并丢弃旧的内容时都会创建一个新的string
。相反,我们希望只创建一次string
-在最后。当我们确切地知道结果string
应该是什么样子的时候。因此,我们应该使用一个字符串构建器来代替。为了避免混淆,这里有一个单独的例子: