English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Короткий оператор объявления переменных (:=) в Golang используется для создания переменных с соответствующими именами и начальными значениями. Основная цель использования этого оператора - это объявление и инициализация локальных переменных в функциях, а также уменьшение области действия переменных. Тип переменной определяется типом выражения. Ключевое слово var также используется для создания переменных определенного типа. Таким образом, в Golang есть два способа создания переменных, как показано ниже:
использовать ключевое слово var
использовать короткий оператор объявления переменных (:=)
В этой статье мы будем обсуждать только короткий оператор объявления переменных. Чтобы узнать о ключевых слове var, можнов Goссылкаключевое слово var.
Синтаксис использования короткого оператора объявления переменных:
variable_name := 表达式 или значение
Здесь переменные необходимо инициализировать сразу после объявления, без указания типа переменной, правая часть выражения или значение используются для определения типа переменной. Использование ключевого слова var позволяет избежать инициализации при объявлении.
Пример:Здесь мы используем короткий оператор объявления переменных, не указывая тип переменной. Тип переменной определяется:=Тип выражения справа от оператора определяет.
package main import "fmt" func main() { //Объявление и инициализация переменных a := 30 //Принимает строковую переменную Language := "Go 语言基础教程" fmt.Println("Значение переменной a: ", a) fmt.Println("Значение переменной Language: ", Language) }
Вывод:
Значение переменной a: 30 Значение переменной Language: Основы языка Go
Короткий оператор объявления также может использоваться для объявленияодинаковыми или различными типамиМножество переменных. Типы этих переменных определяются:=Определение выражения справа от оператора.
package main import "fmt" func main() { //多个相同类型的变量(int) w3codebox1, w3codebox2, w3codebox3 := 117, 7834, 5685 //不同类型的多个变量 w3codebox4, w3codebox5, w3codebox6 := "GFG", 859.24, 1234 //显示值和变量类型 fmt.Printf("w3codebox1 的值为 : %d\n", w3codebox1) fmt.Printf("w3codebox1 的类型为 : %T\n", w3codebox1) fmt.Printf("\nw3codebox2 的值为 : %d\n", w3codebox2) fmt.Printf("w3codebox2 的类型为 : %T\n", w3codebox2) fmt.Printf("\nw3codebox3 的值为 : %d\n", w3codebox3) fmt.Printf("w3codebox3 的类型为 : %T\n", w3codebox3) fmt.Printf("\nw3codebox4 的值为 : %s\n", w3codebox4) fmt.Printf("w3codebox4 的类型为 : %T\n", w3codebox4) fmt.Printf("\nw3codebox5 的值为 : %f\n", w3codebox5) fmt.Printf("Тип w3codebox5: %T\n", w3codebox5) fmt.Printf("\nЗначение w3codebox6: %d\n", w3codebox6) fmt.Printf("Тип w3codebox6: %T\n", w3codebox6) }
Вывод:
Значение w3codebox1: 117 Тип w3codebox1: int Значение w3codebox2: 7834 Тип w3codebox2: int Значение w3codebox3: 5685 Тип w3codebox3: int Значение w3codebox4: GFG Тип w3codebox4: string Значение w3codebox5: 859.24 Тип w3codebox5: float64 Значение w3codebox6: 1234 Тип w3codebox6: int
с помощью оператора краткого объявления (:=),Вы можете только объявлятьтолько имеют блоковый диапазон действиялокальных переменныхОбычно, локальные переменные объявляются внутри функциональных блоков. Если пытаться объявить глобальную переменную с помощью оператора краткого объявления (:=),则会 возникнуть ошибка сообщения.
package main import "fmt" //Использование ключевого слова var для объявления //И инициализация переменной //Это переменная пакета, или, если хотите, глобального масштаба var w3codebox1 = 900 //Использование краткого объявления переменных //Оно вызывает ошибку w3codebox2 := 200 func main() { //Внутри функции доступ к w3codebox1 fmt.Println(w3codebox1) // Внутри функции доступ к w3codebox2 fmt.Println(w3codebox2) }
Ошибка вывода:
.\test.go:12:1: syntax error: non-declaration statement outside function body #.\test.go:12:1:Ошибка синтаксиса:недопустимое заявление вне тела функции
package main import "fmt" //Использование var для объявления глобальной переменной var w3codebox1 = 900 func main() { //Использование краткого объявления переменных //Внутри главной функции //Он имеет локальный диапазон действия, то есть не //Доступ вне главной функции w3codebox2 := 200 //Внутри функции доступ к w3codebox1 fmt.Println(w3codebox1) //Внутри функции доступ к w3codebox2 fmt.Println(w3codebox2) }
Вывод:
900 200