Go 语言变量

优质
小牛编辑
154浏览
2023-12-01

Go 语言中变量的概念和 C 语言中也一样,所以我们直接来看下如何定义和使用变量即可,C 语言中定义变量的格式:

数据类型 变量名称;
数据类型 变量名称1, 变量名称2;
#include <stdio.h>

int main(int argc, const char * argv[])
{
    int num1; // 先定义
    num1 = 10; // 后初始化
    printf("num1 = %d\n", num1);

    int num2 = 20; // 定义的同时初始化
    printf("num2 = %d\n", num2);

    // 注意: 同时定义多个变量,不支持定义时初始化, 只能先定义后初始化
    int num3, num4; //同时定义多个变量
    num3 = 30;
    num4 = 40;
    printf("num3 = %d\n", num3);
    printf("num4 = %d\n", num4);

    return 0;
}

Go 语言中定义变量有三种格式

// 标准格式
var 变量名称 数据类型 = 值;
// 自动推到类型格式
var 变量名称 = 值;
// 简短格式(golang官方推荐格式)
变量名称 := 值;
package main
import "fmt"
func main() {
	var num1 int // 先定义
	num1 = 10 // 后赋值
	fmt.Println("num1 = ", num1)

	var num2 int = 20 // 定义的同时赋值
	fmt.Println("num2 = ", num2)

	var num3  = 30 // 定义的同时赋值, 并省略数据类型
	fmt.Println("num3 = ", num3)
    
	num4  := 40 // 定义的同时赋值, 并省略关键字和数据类型
	/*
	num4  := 40 等价于
	var num4 int
	num4 = 40
	*/
	fmt.Println("num4 = ", num4)
}

和C语言一样,除了可以定义单个变量以外,还支持一次性定义多个变量

方式一,连续定义

 package main
 import "fmt"
 func main() {
 	var num1, num2 int // 先定义
 	num1 = 10	// 后赋值
 	num2 = 20
 	fmt.Println("num1 = ", num1)
 	fmt.Println("num2 = ", num2)
 
 	var num3, num4 int = 30, 40 // 定义的同时赋值
 	fmt.Println("num3 = ", num3)
 	fmt.Println("num4 = ", num4)
 
 	var num5, num6 = 50, 60 // 定义的同时赋值, 并省略数据类型
 	fmt.Println("num5 = ", num5)
 	fmt.Println("num6 = ", num6)
 
 	num7, num8 := 70, 80 // 定义的同时赋值, 并省略关键字和数据类型
 	fmt.Println("num7 = ", num7)
 	fmt.Println("num8 = ", num8)
 }

方式二,变量组

  package main
  import "fmt"
  func main() {
  	var( // 先定义
  		num1 int
  		num2 float32
  	)
  	num1 = 10 // 后赋值
  	num2 = 3.14
  	fmt.Println("num1 = ", num1)
  	fmt.Println("num2 = ", num2)

  	var( // 定义的同时赋值
  		num3 int = 30
  		num4 float32 = 6.66
  	)
  	fmt.Println("num3 = ", num3)
  	fmt.Println("num4 = ", num4)

  	var( // 定义的同时赋值, 并省略数据类型
  		num5 = 50
  		num6 = 7.77
  	)
  	fmt.Println("num5 = ", num5)
  	fmt.Println("num6 = ", num6)

  	var( // 一行定义多个
  		num7, num8 = 70, 80
  		num9, num10 = 9.99, 100
  	)
  	fmt.Println("num7 = ", num7)
  	fmt.Println("num8 = ", num8)
  	fmt.Println("num9 = ", num9)
  	fmt.Println("num10 = ", num10)
  }