(二)Golang的变量

运维路 · · 498 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

为什么需要变量:

  • 变量是程序的基本组成单位
    不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位,比如:下面代码中sum、sub都是变量。
    func getVal(num1 int, num2 int) (int, int) {
    sum := num1 + mum2
    sub := num1 - num2
    return sum, sub
    }
    func main() {
    sum, sub := getVal(30, 30)
    fmt.Println("sum=", sum, "sub=", sub)
    sum2, _ := getVal(10, 30)
    fmt.Println("sum=", sum2)
    }

    变量的介绍:

  • 变量的概念
    变量相当于内存中一个数据存储空间的表示,可以把变量看做是一个房间的门牌号,通过门牌号可以找到房间,同样的道理,通过变量名可以访问到变量(值)。
  • 变量的使用步骤
    1)定义变量
    2)给变量赋值
    3)使用变量
    package main
    import "fmt"
    func main() {
    //定义变量
    var i int
    //给i赋值
    i = 10
    //使用变量
    fmt.Println("i=",i) 
    }
    D:\goproject\src\go_code\chapter02\demon01>go run main.go
    i= 10

    变量使用注意事项:

  • 变量表示内存中的一个存储区域;
  • 该区域有自己的名称(变量名)和类型(数据类型);
  • Golang变量使用的三种方式:
    1)第一种,指定变量类型,定义后若不赋值,使用默认值;
    package main
    import "fmt"
    func main() {
    //golang的变量使用方式
    //第一种:指定变量类型,定义后若不赋值,使用默认值
    //init的默认值是0
    var i int
    fmt.Println("i=", i)
    }
    D:\goproject\src\go_code\chapter02\demon02>go run main.go
    i= 0

    2)第二种,根据值自行判断变量类型(类型引导)

    package main
    import "fmt"
    func main() {   
    //第二种:根据值自行判断变量类型(类型推导)
    var num = 10.11
    fmt.Println("num=", num)
    }
    D:\goproject\src\go_code\chapter02\demon02>go run main.go
    num= 10.11

    3)第三种,省略var定义变量并赋值

    package main
    import "fmt"
    func main() {
    //第三种:省略var,:= 的:不能省略,否则报错
    //下面的方式等价于 var name string   name = "tom"
    name := "tom"
    fmt.Println("name=", name)
    }
    D:\goproject\src\go_code\chapter02\demon02>go run main.go
    name= tom
  • 多变量定义
    1)在编程中,有时我们需要一次性定义多个变量,Golang也提供了这样的语法【在函数里面定义】

    package main
    import "fmt"
    func main() {
    //该案例演示Golang如何一次性定义多个变量
    var a1, a2, a3 int
    fmt.Println("a1=", a1, "a2=", a2, "a3=", a3)
    
    //一次性定义多个变量的方式二
    var b1, b2, b3 = 100, "tom", 888
    fmt.Println("b1=", b1,"b2=", b2,"b3=", b3)
    
    //一次性定义多个变量的方式三,同样可以使用类型推导
    c1, name, c3 := 200, "mary", 999
    fmt.Println("c1=", c1,"name=", name,"c3=", c3)
    }
    D:\goproject\src\go_code\chapter02\demon03>go run main.go
    a1= 0 a2= 0 a3= 0
    b1= 100 b2= tom b3= 888
    c1= 200 name= mary c3= 999

    2)一次性定义全局变量【在go中函数外部定义变量就是全局变量】

    package main
    import "fmt"
    //定义全局变量
    var n1 = 100
    var n2 = 200
    var name = "jack"
    //上面的定义方式,也可以改成一次性定义
    var (
    n3 = 300
    n4 = 400
    name2 = "zhangsan"
    )
    func main() {
    fmt.Println("n1=", n1,"n2=", n2,"name=", name)
    fmt.Println("n3=", n3,"n4=", n4,"name2=", name2)
    }
    D:\goproject\src\go_code\chapter02\demon03>go run var.go
    n1= 100 n2= 200 name= jack
    n3= 300 n4= 400 name2= zhangsan
  • 该区域的数据值可以在同一类型范围内不断变化
    package main
    import "fmt"
    func main() {
    //该区域的数据值可以在同一类型范围内不断变化
    var i int = 10
    i = 30
    i = 50
    fmt.Println("i=", i)
    }
    D:\goproject\src\go_code\chapter02\demon03>go run var02.go
    i= 50
  • 变量在同一个作用域(在一个函数或者代码块)内不能重名;
  • 变量的三要素
    变量=变量名+值+数据类型
  • Golang的变量如果没有赋初值,编译器会使用默认值,比如,int默认值为0;string默认值为空串;小数默认值为0。

有疑问加站长微信联系(非本文作者)

本文来自:51CTO博客

感谢作者:运维路

查看原文:(二)Golang的变量

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

498 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传