Size: a a a

2020 August 23

ЕО

Евгений Омельченко... in Go-go!
go vet вроде это запрещает
источник

ВС

Владимир Столяров... in Go-go!
разве? у меня чет не ловил
источник

GS

Gennady Sadchikov in Go-go!
Евгений Омельченко
go vet вроде это запрещает
Сейчас проверил - не ругается
источник

ЕО

Евгений Омельченко... in Go-go!
Хм
источник

GS

Gennady Sadchikov in Go-go!
Странно, и не явно.
И кажется я про это не читал
источник

с

сонная википедия... in Go-go!
Gennady Sadchikov
Подскажите кто-нибудь почему так происходит?
https://play.golang.org/p/XSbE2UZwbhW
потому что

for _, person := range generatePersons() {
   notify := Notify{
      fmt.Sprintf("Hello %s", person.Name),
      &person,
   }
   notifies = append(notifies, notify)
}
источник

с

сонная википедия... in Go-go!
равноценно
источник

с

сонная википедия... in Go-go!
persons := generatePersons()
n := len(persons)
var person Person
for i := 0; i < n; i++ {
   person = persons[i]
   notify := Notify{
     fmt.Sprintf("Hello %s", person.Name),
     &person,
   }
   notifies = append(notifies, notify)
}
источник

ЕК

Евгений Коновалов... in Go-go!
возник вопрос с экраниерованием, читаю файл и его содержимое (путь к файлу) надо экранировать, но последние кавычки перемещаются на следующую строку - content, err := ioutil.ReadFile("fileresult.txt")
 if err != nil {
   log.Fatal(err)
 }

 text := string(content)

 fmt.Println("\" + text + "\"") - почему так?
источник

с

сонная википедия... in Go-go!
Евгений Коновалов
возник вопрос с экраниерованием, читаю файл и его содержимое (путь к файлу) надо экранировать, но последние кавычки перемещаются на следующую строку - content, err := ioutil.ReadFile("fileresult.txt")
 if err != nil {
   log.Fatal(err)
 }

 text := string(content)

 fmt.Println("\" + text + "\"") - почему так?
потому что в конце text видимо newline
источник

ЕО

Евгений Омельченко... in Go-go!
Владимир Столяров
разве? у меня чет не ловил
Ясно, у нас в CI включен такой линтер https://github.com/kyoh86/looppointer
источник

с

сонная википедия... in Go-go!
сонная википедия
потому что в конце text видимо newline
и экранируйте через strconv.Quote
источник

ЕК

Евгений Коновалов... in Go-go!
сонная википедия
и экранируйте через strconv.Quote
ок, спасибо
источник

GS

Gennady Sadchikov in Go-go!
сонная википедия
потому что

for _, person := range generatePersons() {
   notify := Notify{
      fmt.Sprintf("Hello %s", person.Name),
      &person,
   }
   notifies = append(notifies, notify)
}
Спасибо. Гдеб почитать про то что это не лучшее решение?
источник

ЕО

Евгений Омельченко... in Go-go!
источник

с

сонная википедия... in Go-go!
Gennady Sadchikov
Спасибо. Гдеб почитать про то что это не лучшее решение?
в общем-то нигде, это просто нужно запомнить
но тут есть список таких ловушек https://habr.com/ru/company/mailru/blog/314804/#47
конкретно этот вариант про замыкания, но проблема ровно та же
источник

GS

Gennady Sadchikov in Go-go!
Спасибо, парни
источник

ЕК

Евгений Коновалов... in Go-go!
сонная википедия
и экранируйте через strconv.Quote
еще попутно рождается вопрос, а как теперь можно удалить перенос строки?
источник

н

немедленно in Go-go!
Евгений Омельченко
go vet вроде это запрещает
scopelint на это ругается
источник

ВС

Владимир Столяров... in Go-go!
Евгений Омельченко
Ясно, у нас в CI включен такой линтер https://github.com/kyoh86/looppointer
Хм, надо бы его в golangci-lint попробовать вкрутить, штука полезная
источник