【发布时间】:2020-06-11 12:14:15
【问题描述】:
这个简单的问题让我很困惑。
外部包中的某些函数返回*string
如何在返回的*string 中找到子字符串?
已知的 Go 函数如 strings.Index 和 Contains 需要 string 类型而不是指针。
【问题讨论】:
这个简单的问题让我很困惑。
外部包中的某些函数返回*string
如何在返回的*string 中找到子字符串?
已知的 Go 函数如 strings.Index 和 Contains 需要 string 类型而不是指针。
【问题讨论】:
取消对指针的引用,因此您得到一个string 值。然后你可以继续,就好像它不是一个指针一样。
对于指针类型
*T的操作数x,指针间接*x表示T指向的T类型的variable。
例如:
func main() {
p := getPtr()
fmt.Println(strings.Contains(*p, "go"))
fmt.Println(strings.Contains(*p, "yo"))
}
func getPtr() *string {
s := "gopher"
return &s
}
输出(在Go Playground 上试用):
true
false
【讨论】: