@Djonson86
Нечем похвастаться.

Как с внутренней функции вернуть результат во внешную (подробности внутри)?

Добрый день. Делаю парсер вакансий с сайта. Сделано примерно как и везде. Сначала http.Get(), потом goquery.NewDocumentFromReader(res.Body), и doc.Find() по классам и тегам. Но в каждо вакансии есть еще сслыка типа "Узнать больше", и там прячеться еще нужная мне инфа. Придумал в цикле когда оно обходит эти вакансии, в каждой вакансии заходить в эту внутреннюю ссылку, делать http.Get(), goquery.NewDocumentFromReader(res.Body) и доставать оттуда что мне надо. Но возникла проблема. Переменная внутри этого второго обхода не видна для главной функции (в данном случае City). Как сделать, чтоб все снаружи понимало, что это эта переменная? return не помогает.

605ae3acc59cc408024164.png
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
Почитайте что такое область видимости https://golangs.org/variable-scope
Чтобы переменная city (переменные принято называть с маленькой буквы) была видна внутри Each (76 строчка), вы должны переменную объявить внутри этой же функции, а не во вложенной.
Например, на строке 87 написать
var city string
или же, как у вас закомментировано:
city := ""

Внутри вложенной функции уже будете использовать не :=, а просто =
Потому что равно с двоеточнием создает новую переменную, а вам надо просто присвоить значение в уже существующую переменную.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы