Go变量

简介: Go变量

语法格式:去除分号

Go语言不再像C和Java那样使用 “;” 作为程序语句的结尾。我们可以直接使用如下语法规则:

syntax_code1
syntax_code2
syntax_code3

从变量开始

定义变量

用var关键字开头,紧接后面跟上你想定义的变量名,最后加上变量的数据类型,基本格式如下:

var myvariable data_type

// 示例:

// 示例:
var a int
var str string
var b, c float64

变量名在前,类型在后。因为go语言编译器可以自动决定变量类型,能推断出变量数据类型,所以类型也能省略。

给变量赋值

a = 18
str = "Hello World"
b, c = 3.14, 2.14

变量可放在函数内,或直接放在包内。

  1. 声明一个变量并直接赋值:
var s1, s2 string = "hello", "world"

  1. 使用:=定义变量(但是这种方式不能用在函数外)
a, b, c, s := 3, 4, true, "golang"
  1. 使用var()集中定义变量:
var(
    name = "Wade"
    age = 18
    words = "You are the best"
)

编写代码

新建一个文件夹learnvar,进入这个目录,然后建立一个 main.go文件,

image.png

输入以下代码:

package main
import "fmt"
func main() {
    // 声明变量
    var a int
    var str string
    var b, c float64
    // 给变量赋值
    a = 20
    str = "Hello World!"
    b, c = 3.14, 2.14
    /* 打印变量 */
    fmt.Println("value of a = ", a)
    fmt.Println("var of str = ", str)
    fmt.Println("var of b = ", b)
    fmt.Println("var of c = ", c)
    // 声明并指定变量值
    var s1, s2 string = "Hello", "Wade"
    var e int = 18
    fmt.Println(s1, s2)
    fmt.Printf("You are %d years old.\n", e)
    // 用 := 声明并指定变量值
    country := "China"
    num := 100
    fmt.Println("I love my country ", country)
    fmt.Println("value of num = ", num)
    // 定义多个变量
    var (
        name string
        age  int
        home string
    )
    name = "Kevin"
    age = 22
    home = "US"
    fmt.Printf("name: %s\n age: %d\n home: %s", name, age, home)
    // fmt.Println(name)
    // fmt.Println(age)
    // fmt.Println(home)
}

测试

在命令行或者SHELL中,输入go run main.go,查看输出结果:

image.png

代码注释

go语言的代码注释和c语言一样,使用单行注释// 和多行注释 /**/ 的格式,在代码中适当的增加注释方便自己和他人阅读,写注释其实也是写代码前的一个总体设计。

// 声明变量
var a int
var str string
var b, c float64
// 给变量赋值
a = 20
str = "Hello World!"
b, c = 3.14, 2.14
/* 打印变量 */
fmt.Println("value of a = ", a)
fmt.Println("var of str = ", str)
fmt.Println("var of b = ", b)
fmt.Println("var of c = ", c)

内建变量类型总结

  1. bool,string

bool: 布尔类型,值为true或false

string:字符串类型

  1. (u)int, (u)int8, (u)int16, (u)int32, (u)int64, uintptr

前面的整数不用过多介绍,着重提一下uintptr,是指针类型,Go语言也是具有指针这一特性的,但是并没有像c语言使用那么的复杂 。后面学习到再深入解释。

  1. byte, rune

byte类型你可以看作是uint8的一个别名,byte和uint8表示的范围是一样的,也可以叫做字节类型,byte,最大能表示的范围也就是一个字节的空间大小。

rune是一个新的数据类型,因为你在其他的语言中并没有见过这种类型,相对来说也比较陌生,但是我举个例子你就能完全明白了,在c语言中,有char这个类型,是用来便是一个ASCII字符的,但是是随着编程知识的普及,很多国家的人们都在学习编程,编写程序,但是语言就成为来一大障碍,仅仅用ASCII编码是远远不能满足人们的需求的,故Go语言就是用了Unicode编码,rune也就相当于是在Unicode编码下的字符类型。

rune的长度是32位的,我们都知道unicode是2字节的,但是互联网中很多时候都是使用的UTF-8编码,所以我们rune类型采用了4字节的存储空间,如果后期Go会升级成UTF-8编码提供了可能。

  1. float32, float64, complex64, complex128

complex64和complex128就是用来表示我们数学中的复数,复数实部和虚部,complex64的实部和虚部都是32位float,complex128的实部和虚部都是64位float。

package main
import "fmt"
import "math/cmplx"
func main() {
    c := 3 + 4i
    fmt.Println(cmplx.Abs(c))
}

总结

Go语言的变量相关设置还是有很多创新的,比如:与众多流行语法相反,变量类型后声明;去掉char类型,设计更为人性化的rune类型;增加复数类型。总之,还有更多的内容待我们去学习发现。

相关文章
|
7月前
|
存储 安全 编译器
掌握Go语言:探索Go语言中的变量,灵活性与可读性的完美结合(4)
掌握Go语言:探索Go语言中的变量,灵活性与可读性的完美结合(4)
初识go变量,使用var和:=来声明变量,声明变量的三种方式
这篇文章介绍了Go语言中使用`var`和`:=`声明变量的三种不同方式,包括声明单个或多个变量、通过值确定数据类型以及在函数体内使用`:=`声明局部变量。
初识go变量,使用var和:=来声明变量,声明变量的三种方式
|
1月前
|
存储 编译器 Go
go语言中的变量、常量、数据类型
【11月更文挑战第3天】
32 9
|
4月前
|
Go
Go1.22 新特性:for 循环不再共享循环变量,且支持整数范围
Go1.22 新特性:for 循环不再共享循环变量,且支持整数范围
|
4月前
|
安全 Go
|
4月前
|
自然语言处理 Go 开发者
深入理解Go语言中的变量作用域
【8月更文挑战第31天】
31 0
|
6月前
|
存储 安全 Go
【Go语言精进之路】构建高效Go程序:掌握变量、常量声明法则与iota在枚举中的奥秘
【Go语言精进之路】构建高效Go程序:掌握变量、常量声明法则与iota在枚举中的奥秘
73 2
|
6月前
|
算法 编译器 Go
Go语言中,常量和变量的定义和使用
Go语言中,常量和变量的定义和使用
|
7月前
|
Go CDN
Go 语言变量作用域
Go 语言变量作用域
39 4
|
6月前
|
Go
go反射获取变量类型、值、结构体成员、结构体方法
go反射获取变量类型、值、结构体成员、结构体方法