Понимание разницы между ":=" и "=" в Go
Как новичок в Go, вы можете быть озадачены казалось бы взаимозаменяемое использование ":=" и "=" для назначения переменных. Однако есть небольшая разница, которая связана с контекстом объявления переменных.
Роль "="
В Go "=" в основном используется для присвоения переменных. Он соответствует синтаксису «имя var тип = выражение», где «имя» представляет назначаемую переменную. Важно отметить, что тип или выражение присваивания можно опустить, но не то и другое.
Природа ":="
Напротив, ":=" обозначает краткое объявление переменной в формате «имя := выражение». Здесь «:=" действует как объединенный оператор объявления и присваивания. Тип «имени» автоматически выводится из типа «выражения».
Различие между объявлением и присваиванием
Ключевое различие заключается в основной цели каждого оператор. ":=" предназначен исключительно для объявления, тогда как "=" используется для присвоения. Следовательно, короткие объявления переменных обязательно должны вводить по крайней мере одну совершенно новую переменную в текущем лексическом блоке.
Примеры использования
Чтобы проиллюстрировать это различие, рассмотрим следующие примеры. :
var x int = 1
Этот оператор объявляет целочисленную переменную "x" и инициализирует его значением 1.
r := foo()
Это короткое объявление переменной, которое присваивает возвращаемое значение "foo ()» к вновь созданной переменной «r».
This creates a new variable "m" and assigns a new value to the existing variable "r." **Exceptions and Additional Information** It's worth noting that ":=" can only be used within functions. However, it can declare temporary variables within the initializers of control structures like "if," "for," and "switch." For further exploration, you can refer to the official Go documentation on: * [Variable Declarations](https://go.dev/ref/spec#Variable_declarations)
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3