Переменные
Переменная представляет собой именованный участок в памяти, который может хранить определенное значение. В Go для определения (создания) переменной применяется ключевое слово var, после которого идет имя переменной, а затем указывается ее тип (подробно о типах данных рассмотрим в следующем пункте). Общий синтаксис выглядит следующим образом:
var имя_переменной тип_данных
Пример создания переменной в Go:
var greeting string
В данном примере мы создали переменную с именем greeting, которая может хранить тип данных string.
Также возможно одновременно объявить несколько переменных через запятую:
var name, surname string
Здесь уже определены сразу две переменные name и surname, которые имеют тип string и которые принадлежат типу string.
Примеры программ с переменными
Теперь мы можем объявить переменную типа string и присвоить ей любое значение, а затем её вывести.
package main
import "fmt"
func main() {
var name, surname string
name = "Ivan"
surname = "Ivanov"
fmt.Println(name) // Ivan
fmt.Println(surname) // Ivanov
}
Поскольку переменные name и surname имеют тип данных string, им можно присвоить строку. В данном случае переменная name хранит строку "Ivan"
, a surname хранит "Ivanov"
. С помощью функции Println значение этих переменных выводится на консоль.
Важно! Go - регистрозависимый язык. Это значит, что переменные с именами name и Name будут представлять собой разные переменные.
package main
import "fmt"
func main() {
var name string
name = "Ivan"
fmt.Println(Name) // Ошибка! Переменной Name не существует, есть переменная name
}
Также возможно сразу при объявлении переменной присвоить ей начальное значение. Данный прием называется инциализацией:
package main
import "fmt"
func main() {
var name string = "Ivan"
fmt.Println(name)
}
Если мы хотим сразу определить несколько переменных и присвоить им начальные значения, то можно обернуть их в скобки:
package main
import "fmt"
func main() {
var (
name string = "Ivan"
surname string = "Ivanov"
)
fmt.Println(name) // Ivan
fmt.Println(surname) // Ivanov
Одной из особенностей переменных является то, что их значение можно многократно изменять:
package main
import "fmt"
func main() {
var name string = "Ivan"
fmt.Println(name) // Ivan
name = "Petr"
fmt.Println(name) // Petr
name = "Oleg"
fmt.Println(hello) // Oleg
}
Краткая инициализация переменных
Существует более краткий способ объявить переменную:
name := "Ivan"
В этом случае тип данных явным образом не указывается, он выводится автоматически из присваиваемого значения. Это равносильно следующему примеру:
var name string = "Ivan"
Также возможно объявить таким способом (пример неявной типизации):
var name = "Ivan"
Комментарии
Комментарии служат для описания действий, которые производит программа или какие-то ее части. При компиляции комментарии не учитываются и не оказывают никакого влияния на работу приложения. Комментарии бывают однострочными и многострочными.
В вышеперечилсенных примерах мы уже использовали комментарии. Однострочный комментарий располагается в одну строку после двойного слеша (//
). Все, что идет после этих символов, воспринимается компилятором как комментарий. Многострочный комментарий заключается между символами /*
и */
и может занимать несколько строк, например:
/*
The first porgramm
in the Golang
*/
package main // определение пакета для файла main.go
import "fmt" // подключение пакета "fmt"
// определение функции main
fun main() {
fmt.Println("Hello there!") // вывод строки на консоль
}