zoukankan      html  css  js  c++  java
  • Golang 变量

    变量说明

    变量是程序的基本组成单位,无论使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位。

    变量的概念

    变量相当于内存中一个数据存储空间的表示,有自己的名称(变量名)和类型(数据类型

    你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,同样的道理,通过变量名可以访问到变量

    变量的使用步骤

    1. 申明变量
    2. 变量赋值
    3. 使用变量

    变量的基本使用步骤如下:

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	var name string //申明变量
    
    	name = "smile" //变量赋值
    
    	fmt.Println(name) //使用变量
    }
    

    变量的注意事项

    变量声明后,必须使用,否则程序报错:imported and not used: "fmt"

    变量声明后,不能重复声明,否则程序报错:age redeclared in this block

    变量名注意事项

    • 由26个英文字母大小写,0-9,_组成
    • 不能以数字开头
    • Golang中严格区大小写
    • 标识符不能包含空格
    • 下划线“_”本身在Golang中是一个特殊的标识符,称为空标识符。可以表示任何其他的标识符,但是对它的值会被忽略(比如:返回某个值)。所以仅能被作为占位符使用,不能作为标识符使用

    声明单一变量

    声明一个变量的语法:var name type 例如

    package main
    
    import "fmt"
    
    func main() {
    	var name string //变量声明
    
    	fmt.Println(name)
    }
    

    语句 var name string 声明了一个类型为string,名称为name的变量,如果一个变量没有被赋予任何值,Go会自动将这个变量初始化其类型的0值。

    类型 零值
    bool false
    string ""
    int 0
    float 0.0
    map nil
    slice nil
    array 长度为 lenth 每个元素的零值为 type 对应的零值

    一个变量可以被赋予其任何类型的任何值。

    package main
    
    import "fmt"
    
    func main() {
    	var name string //变量声明
    
    	name = "smile" //变量赋值
    
    	fmt.Println(name)
    
    	name = "易文杰" //变量赋值
    
    	fmt.Println(name)
    }
    

    声明一个带初始值的变量

    在申明变量的时可以指定其初始值

    申明一个带初始值的变量的语法为:var name type = initalvalue

    package main
    
    import "fmt"
    
    func main() {
    	var name string = "smile"
    	
    	fmt.Println(name)
    }
    

    在上面程序中,name是一个string类型的变量,初始值为smile。运行上面的程序,输出如下,可以看到name的初始值确实为smile

    smile
    

    类型推导

    如果声明一个变量时提供了初始值,Go可以根据该初始值来自动推导变量的类型。因此如果申明变量时提供了初始值,就可以不必指定其类型。

    也就是说,如果声明变量的类型为:var name = initialvalue,Go将根据initialvalue自动推导变量name的类型。

    在下面的例子中,你可以看到申明变量name时,并没有指定其类型。因为name的初始值为smile,Go会自动推导出其类型为string

    package main
    
    import "fmt"
    
    func main() {
    	var name = "smile"
    
    	fmt.Println(name)
    }
    

    多变量申明

    多个变量可以在一条语句中申明。

    多个变量申明的语法为:var name1,name2 type = initialvalue1,initialvalue2,例如:

    package main
    
    import "fmt"
    
    func main() {
    	var name,sex string  = "smile","男"
    
    	fmt.Println(name,sex)
    }
    

    如果指定了初始值,则type可以省略。下面的程序利用类型推导声明了多个变量:

    package main
    
    import "fmt"
    
    func main() {
    	var name,sex = "smile","男"
    
    	fmt.Println(name,sex)
    }
    

    当不指定初始值,它们会自动赋值。

    package main
    
    import "fmt"
    
    func main() {
    	var name,sex string
    
    	fmt.Printf("姓名是%v\n性别是%v",name,sex)
    }
    

    将会输出

    姓名是
    性别是
    

    有些时候我们需要在一条语句中申明多个不同类型的变量,我们可以使用下面的语法达到此目的:

    var name,age = "smile",18
    
    var (
    	name = "smile"
    	age  = 18
    )
    

    速记声明

    Go 提供了另一种简洁的声明变量的方式,这种方式称为速记声明(shorthand declaration)。速记声明使用:=操作符来申明变量

    速记声明的语法为:name := initialvalue,例如:

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	name,sex := "smile","男"
    
    	fmt.Println(name,sex)
    }
    

    上面的程序,输出如下:

    smile 男
    

    速记声明要求在 :=的左边必须至少有一个变量时新声明的,否则程序报错:

    no new variables on left side of :=
    

    一个变量不能被赋予与其类型不同的值。下面的程序将报错:

    annot use 12 (type untyped int) as type string in assignment。这是因为name被申明为string类型,但是试图将int类型的值赋予给它

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	name,sex := "smile","男"
    
    	name = 12
    
    	fmt.Println(name,sex)
    }
    
  • 相关阅读:
    SpringMVC数据绑定
    SpringMVC概述
    应用Spring和Hibernate(C3P0数据池)写数据库交互项目
    Spring的AOP特性
    Sping框架的IOC特性
    MD5加密字符串
    重力感应 视频横竖屏切换
    自定义View(三)实现简单的可拖动、可缩放的ImageView
    自定义View(二)增加View的属性
    自定义View的学习(一) 自绘制控件
  • 原文地址:https://www.cnblogs.com/ywjcqq/p/15656551.html
Copyright © 2011-2022 走看看