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 переменные:
a
b
c
Эти переменные объявлены, но им не присвоены начальные значения.
Запустив код, мы видим, что у них уже есть значения по умолчанию для соответствующих типов:
a
-""
b
-0
c
-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