Этот простой вопрос смутил меня.
Некоторая функция из внешнего пакета возвращает *string
*string
Как найти подстроку в возвращенном *string?
Известно Go функционирует как strings.Index и Contains, требует string тип и не указатель.
strings.Index
Contains
string
Разыменуйте указатель, чтобы получить значение string. Тогда вы можете действовать так, как если бы это был не указатель.
Spe c: Операторы адреса:
Для операнда x указателя тип *T, косвенное указатель *x обозначает переменную типа T, на которую указывает x.
x
*T
*x
T
Например:
func main() { p := getPtr() fmt.Println(strings.Contains(*p, "go")) fmt.Println(strings.Contains(*p, "yo")) } func getPtr() *string { s := "gopher" return &s }
Выходы (попробуйте на Go Детская площадка ):
true false