变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间

一、变量声明

go语言通过var关键字来声明变量,与Java和其他语言不同的是将数据类型放在变量名后,变量名不能重复

var a int
var b [10]int
var c string
//还可以这样使用来同时声明多个变量
var{
  d int
  e string
}

二、声明变量并进行初始化

var a string = "hello world"
var b = "hello world" //可以不注明类型,go会进行类型推断
c := "hello world" //这样也是可以的,同样会进行类型推断

:= 这符号真的第一次见 ,但是要注意不能对声明过的变量名用这个符号,会报错的

package main 

import "fmt"   

func main(){   
    var a int =  8
    a := 9 //这里其实相当于又声明了一个变量a 变量名是不能重复声明的
    fmt.Println(a);
}

下图是上面示例代码的错误信息,可以看到报错信息为在第7行,没有在:=左边声明一个新的变量

错误信息.png

三、变量的赋值

//简单的变量赋值
var a int
a = 6
//go变量互换的语法
x, y = y, x   // 这样会交换 x,y的值 

四、匿名变量

这里先说一下go语言中函数的语法

func 函数名(变量名 变量类型,变量名 变量类型,......)(返回值列表){
  ......//内部执行逻辑
}

举个例子,一个函数返回多个值,有时候我们可能只需要一个值,这时候我们可以使用匿名变量

package main 

import "fmt"   

func main(){   
     //我们需要函数的全部返回值的情况
    name, age, address := GetPerson()
    fmt.Printf("%s 今年 %d 岁 ,住在 %s n", name, age, address)
    //有时,我们可能只需要name,这样我们就可以用_来代替变量接收,这样可以避免
    myname,_,_ := GetPerson()
    fmt.Println("我叫 " + myname)
}

func GetPerson()(name string, age int, address string){
    return "Damon", 20, "China"
}

运行结果

运行结果

五、变量的类型

说了这么多,还没有说go变量的类型

  1. 基础数据类型:
  • 布尔类型:bool
  • 整型:int8、byte、int、int16、uint、uintptr
  • 浮点类型:float32、float64
  • 复数类型:complex64、complex128
  • 字符串:string
  • 字符:rune
  • 错误类型:error
  1. 复合类型
  • 指针(pointer)
  • 数组(array)
  • 切片(slice)
  • 字典(map)
  • 通道(chan)
  • 结构体(struct)
  • 接口(interface)

好了,今天就先分享到这里啦

文章来源于互联网,如有雷同请联系站长删除:GO入门(三)变量

发表评论