首页 > 解决方案 > 如何在字符串指针中查找子字符串

问题描述

这个简单的问题让我很困惑。

外部包中的某些功能返回*string

如何找到返回的子字符串*string

已知的 Go 函数作为strings.Index并且Contains需要string类型而不是指针。

标签: stringpointersgo

解决方案


取消引用指针,所以你得到一个string值。然后你可以继续,好像它不是一个指针。

规范:地址运算符:

x对于指针类型的操作数,*T指针间接*x表示指向的类型的变量Tx

例如:

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

推荐阅读