В Go переменные, объявленные в области действия оператора if, видны только внутри этого блока. Это может представлять проблему, когда необходимо использовать переменные, объявленные в условном операторе, за его пределами.
Рассмотрим следующий код:
if len(array1) > len(array2) { new1 := make([]string, 0, len(array1)) } // Error: new1 is not visible here new2 := make([]string, 0, len(new1))
В этом примере переменная new1 объявлена внутри оператора if и может использоваться только в этой области. Чтобы решить эту проблему, new1 необходимо объявить вне оператора if и инициализировать внутри него.
var new1 []string if len(array1) > len(array2) { new1 = make([]string, 0, len(array1)) } else { new1 = make([]string, 0, len(array2)) } new2 := make([]string, 0, len(new1))
Теперь new1 объявляется вне оператора if и доступен как в блоках if, так и в else. Это позволяет использовать его в последующем коде, где он передается в качестве аргумента для make.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3