ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ
Golang. Уроки для начинающих

Go Переменные


Переменные - это контейнеры для хранения значений данных.


Go Типы переменных

В Go есть разные типы переменных, например:

  • int - хранит целые числа (integer), например 123 или -123
  • float32 - хранит числа с плавающей запятой с десятичными знаками, например 19,99 или -19.99
  • string - хранит текст, например "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
Попробуйте сами »

Go Упражнения

Проверьте себя с помощью упражнений

Упражнение:

Создайте переменную с именем myNum и присвойте ей значение 50.

package main
import ("fmt") 
func main() { var = fmt.Println() }