Go Переменные
Переменные - это контейнеры для хранения значений данных.
Go Типы переменных
В Go есть разные типы переменных, например:
int- хранит целые числа (integer), например 123 или -123float32- хранит числа с плавающей запятой с десятичными знаками, например 19,99 или -19.99string- хранит текст, например "Hello World". Строковые значения заключены в двойные кавычкиbool- сохраняет значения с двумя состояниями: true или false (истина или ложь)
Подробнее о различных типах переменных будет рассказано в главе Go Типы данных на нашем сайте W3Schools на русском.
Объявление (создание) переменных
В языке программирования Go есть два способа объявить переменную:
С помощью ключевого слова var:
Используйте ключевое слово var, за которым следует имя и тип переменной:
Синтаксис
var variable type = value
Примечание: Вы всегда должны указывать либо type, либо value (или оба).
С помощью знака :=:
Используйте знак :=, за которым следует значение переменной:
Синтаксис
variable := value
Примечание: В этом случае тип переменной выводится из значения (означает, что компилятор определяет тип переменной).
Примечание: Невозможно объявить переменную с помощью := без присвоения ей значения.
Объявление переменной с начальным значением
Если значение переменной известно с самого начала, вы можете объявить переменную и присвоить ей значение в одной строке:
Пример
package main
import ("fmt")
func main() {
var student1 string = "John" //тип - строка
var student2 = "Jane" //тип выводится
x := 2 //тип выводится
fmt.Println(student1)
fmt.Println(student2)
fmt.Println(x)
}
Попробуйте сами »
Примечание: Типы переменных student2 и x выводятся из их значений.
Объявление переменной без начального значения
В Go инициализируются все переменные. Итак, если вы объявляете переменную без начального значения, для неё будет установлено значение по умолчанию для ее типа:
Пример
package main
import ("fmt")
func main() {
var a string
var b int
var c bool
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
Попробуйте сами »
Объяснение примера
В этом примере есть 3 переменные:
abc
Эти переменные объявлены, но им не присвоены начальные значения.
Запустив код, мы видим, что у них уже есть значения по умолчанию для соответствующих типов:
a-""b-0c-false
Присвоение значения после объявления
Можно присвоить значение переменной после её объявления. Это полезно для случаев, когда значение изначально неизвестно.
Пример
package main
import ("fmt")
func main() {
var student1 string
student1 = "John"
fmt.Println(student1)
}
Попробуйте сами »
Примечание: Невозможно объявить переменную с помощью ":=" без присвоения ей значения.
Различие между var и :=
Есть небольшие различия между var и :=:
| var | := |
|---|---|
| Может использоваться внутри и вне функций | Может использоваться только внутри функций |
| Объявление переменной и присвоение значения можно выполнить отдельно | Объявление переменной и присвоение значения не могут выполняться отдельно (должны выполняться в одной строке) |
Пример
В этом примере показано объявление переменных вне функции с ключевым словом var:
package main
import ("fmt")
var a int
var b int = 2
var c = 3
func main() {
a = 1
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
Попробуйте сами »
Пример
Поскольку := используется вне функции, запуск программы приводит к ошибке.
package main
import ("fmt")
a := 1
func main() {
fmt.Println(a)
}
Результат:
./prog.go:5:1: syntax error: non-declaration statement outside function body

