Почему я не могу использовать пустой идентификатор в следующем коде Go? - PullRequest
1 голос
/ 26 ноября 2010
for _, arg := range flag.Args() {
    go func() {
        path.Walk(arg, dupes, walkerrs)
        walkend <- true
    }()
}
for _ := range flag.Args() {
    if !<-walkend {
        os.Exit(1)
    }
}

Второе использование _ дает эту ошибку: no new variables on left side of :=. Что я сделал не так?

Ответы [ 3 ]

7 голосов
/ 26 ноября 2010

:= - это краткое объявление переменной. _ не является реальной переменной, поэтому вы не можете объявить ее.

Вместо этого вы должны использовать =, когда у вас нет новых переменных.

6 голосов
/ 26 ноября 2010

Используйте эту строку:

for _ = range flag.Args() {

Ошибка должна исчезнуть, если пропустить инициализацию для пустого идентификатора.

4 голосов
/ 01 сентября 2014

Обновление для этого вопроса, начиная с Go 1.4 (текущий совет), вы можете использовать for range flag.Args() { ... }, пропуская часть _ =.

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