English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной курс Golang

Контрольные операторы в Golang

Функции и методы в Golang

Структуры в Golang

Срезы и массивы в Golang

Строки (String) в Golang

Указатели в Golang

Интерфейсы в Golang

Конкурентное программирование в Golang

Исключения (Error) в Golang

Другие темы Golang

Короткий оператор объявления переменных в Go (:=

Короткий оператор объявления переменных (:=) в 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