Go语言的基本类型有:

  • bool
  • string
  • int、int8、int16、int32、int64
  • uint、uint8、uint16、uint32、uint64、uintptr
  • byte // uint8 的别名
  • rune // int32 的别名 代表一个 Unicode 码
  • float32、float64
  • complex64、complex128

 

go 语言变量分为全局变量和局部变量:

1,函数内定义的变量称为局部变量

2,函数外定义的变量称为全局变量

3,函数定义中的变量称为形式参数

局部变量声明方式:

局部变量声明可以用以下方式:

1,var param string  #行尾无须分号。

2,批定义:

var (
    a int
    b string
    c []float32
    d func() bool
    e struct {
        x int
    }
)

var i =100 #声明时初始化变量,此时并没有声明类型,编译器会自动根据右值类型推断出左值的对应类型。

3,:=声明方式

i := 0 #单独定义赋值  

i,j := 0,1  #批量定义赋值

注:这是Go语言的推导声明写法,编译器会自动根据右值类型推断出左值的对应类型。

短模式有以下限制:

  • 定义变量,同时显式初始化。
  • 不能提供数据类型。
  • 只能用在函数内部。

4,匿名变量

匿名变量的特点是一个下画线“_”,“_”本身就是一个特殊的标识符,被称为空白标识符。它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被抛弃,因此这些值不能在后续的代码中使用,也不可以使用这个标识符作为变量对其它变量进行赋值或运算。使用匿名变量时,只需要在变量声明的地方使用下画线替换即可。

func GetData() (int, int) {
    return 100, 200
}
func main(){
    a, _ := GetData()
    _, b := GetData()
    fmt.Println(a, b)
}

运行结果:
100 200

全局变量声明方式:

在函数体外声明的变量称之为全局变量,全局变量只需要在一个源文件中定义,就可以在所有源文件中使用,当然,不包含这个全局变量的源文件需要使用“import”关键字引入全局变量所在的源文件之后才能使用这个全局变量。
全局变量声明必须以 var 关键字开头,如果想要在外部包中使用全局变量的首字母必须大写。

package main

import "fmt"

//声明全局变量
var c int

func main() {
    //声明局部变量
    var a, b int

    //初始化参数
    a = 3
    b = 4
    c = a + b

    fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)
}

运行结果:
a = 3, b = 4, c = 7

形参变量:

在定义函数时函数名后面括号中的变量叫做形式参数(简称形参)。形式参数只在函数调用时才会生效,函数调用结束后就会被销毁,在函数未被调用时,函数的形参并不占用实际的存储单元,也没有实际值。

形式参数会作为函数的局部变量来使用。

package main

import (
    "fmt"
)

//全局变量 a
var a int = 13

func main() {
    //局部变量 a 和 b
    var a int = 3
    var b int = 4

    fmt.Printf("main() 函数中 a = %d\n", a)
    fmt.Printf("main() 函数中 b = %d\n", b)
    c := sum(a, b)
    fmt.Printf("main() 函数中 c = %d\n", c)
}

func sum(a, b int) int {  #a,b为形参
    fmt.Printf("sum() 函数中 a = %d\n", a)
    fmt.Printf("sum() 函数中 b = %d\n", b)
    num := a + b
    return num
}

运行结果:
main() 函数中 a = 3
main() 函数中 b = 4
sum() 函数中 a = 3
sum() 函数中 b = 4
main() 函数中 c = 7

 

posted on 2021-01-15 15:12  EZgod  阅读(79)  评论(0编辑  收藏  举报