Как найти подстроку в указателе строки - PullRequest
0 голосов
/ 27 февраля 2020

Этот простой вопрос смутил меня.

Некоторая функция из внешнего пакета возвращает *string

Как найти подстроку в возвращенном *string?

Известно Go функционирует как strings.Index и Contains, требует string тип и не указатель.

1 Ответ

6 голосов
/ 27 февраля 2020

Разыменуйте указатель, чтобы получить значение string. Тогда вы можете действовать так, как если бы это был не указатель.

Spe c: Операторы адреса:

Для операнда x указателя тип *T, косвенное указатель *x обозначает переменную типа T, на которую указывает x.

Например:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...