запись в указатель, но компилятор все еще жалуется на неиспользуемую переменную - PullRequest
0 голосов
/ 23 октября 2018

Следующий код вызывает ошибку компиляции:

main.go: 8: 9: p объявлен и не используется

package main

func main() {
    pointers := make([]*int, 5)

    a := 1 // create an int

    for _, p := range pointers {
        p = &a
    }
}

Запись в pне считается как его использовать?

1 Ответ

0 голосов
/ 23 октября 2018

P ограничивается только блоком цикла и, по сути, получает копию элемента среза pointers каждый раз, когда проходит цикл.Это будет работать, хотя:

package main

import "fmt"

func main() {
    pointers := make([]*int, 5)

    a := 1 // create an int

    for i := range pointers {
        pointers[i] = &a
    }
    fmt.Println(pointers)
}

Детская площадка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...