• GO入门——2. 变量


    1 基本类型

    • 零值并不等于空值,而是当变量被声明为某种类型后的默认值,
      通常情况下值类型的默认值为0,bool为false,string为空字符串,引用为nil。

    1.1 布尔类型

    • 关键字:bool
    • 长度:1字节
    • 取值范围:true, false
    • 注意事项:不可以用数字代表true或false
    • 默认值为false

    1.2 整型类型

    1.2.1 整型

    • int/uint 根据运行平台可能为32或64位
    • int8/uint8(byte) 长度1字节,uint别名byte
    • int16/uint16 长度2字节
    • int32(rune)/uint32 长度4字节
    • int64/uint4 长度8字节
    • uintptr 足够保存指针的 32 位或 64 位整数型

    1.2.1 浮点型

    • float32 长度4字节,小数精确到7位
    • float64 长度8字节,小数精确到15位

    1.3 复数类型

    • complex64 长度8字节
    • complex128 长度16字节

    1.4 其他类型

    • array
    • struct
    • string

    1.5 引用类型

    • slice
    • map
    • chan

    1.6 接口类型

    • interface

    1.7 函数类型

    • func

    1.8 指针

    在Go当中不
    支持指针运算以及”->”运算符,而直接采用”.”选择符来操作指针
    目标对象的成员

    • 操作符”&”取变量地址,使用”*”通过指针间接访问目标对象
    • 默认值为 nil 而非 NULL

    2 声明与赋值

    2.1 单个变量的声明与赋值

    • 变量的声明格式:var <变量名称> <变量类型>
    • 变量的赋值格式:<变量名称> = <表达式>
    • 声明的同时赋值:var <变量名称> [变量类型] = <表达式>
    var a int   //变量声明
    a = 123     //变量赋值
    //声明同时赋值
    var b int = 12
    //省略类型,系统自动推断
    var c = 12
    //局部变量的简写
    d := 12
    

    2.2 多个变量的声明与赋值

    • 全局变量的声明可使用 var() 的方式进行简写
    • 全局变量的声明不可以省略 var,但可使用并行方式
    • 所有变量都可以使用类型推断
    • 局部变量不可以使用 var() 的方式简写,只能使用并行方式
    var (
        //常规声明与赋值
        a = "hello"
        //并行方式并自动推断类型
        b , c = 1 , 2
        // d := 1   编译错误,全局变量不能用:=
    )
    
    //并行声明多变量
    var a,b,c,d int
    //并行赋值
    a,b,c,d = 1,2,3,4
    //并行声明与赋值
    var e,f,g int = 1,2,3
    //省略类型,并行声明与复制类型自动推断
    var i,j,k = 1,2,3
    //多个变量声明与复制的最简单写法
    a,b,c := 1,"hello",2
    

    2.3 变量的类型转换

    • Go中不存在隐式转换,所有类型转换必须显式声明
    • 转换只能发生在两种相互兼容的类型之间
    • 类型转换的格式:
    	<ValueA> [:]= <TypeOfValueA>(<ValueB>)
    
    //相互兼容的类型可以通过类型转换
    var a float32 = 1.0
    b:=int(a)
    
    //编译错误
    var c bool = true
    d:=int(c)
    

    3 常量

    3.1 常量的定义

    • 常量的值在编译时就已经确定
    • 常量的定义格式与变量基本相同
    • 等号右侧必须是常量或者常量表达式
    • 常量表达式中的函数必须是内置函数
    //定义单个常量
    const a int = 1
    const b = 'A'
    const(
        c = 1
        d = "hello"
        len = len(d)
    )
    
    //定义多个常量
    const i,j,k = 1,2,3
    const(
        x,y,z = "1",2,"3"
    )
    

    3.2 常量的初始化规则与枚举

    • 在定义常量组时,如果不提供初始值,则表示将使用上行的表达式
    • iota是常量的计数器,从0开始,组中每定义1个常量自动递增1
    • 通过初始化规则与iota可以达到枚举的效果
    • 每遇到一个const关键字,iota就会重置为0
    const (
    	//a和b都为“A”
    	a = "A"
    	b
    	//c,d分别为2,3
    	c = iota
    	d
    	//e为65
    	e = 'A'
    )
    const(
        //e,f分别为0和1
        e = iota
        f 
    )
    
    
  • 相关阅读:
    微引擎的自定义菜单40063错误解决
    jquery 重复事件
    信号量机制DOWN操作和UP操作的详细说明
    每日算法37:Rotate Image (图像旋转)
    讨论嵌入式系统测试方案
    Android 从硬件到应用程序:一步一步爬上去 6 -- 我写的APP测试框架层硬件服务(终点)
    MVC 接受Flash上传图片
    autorun.vbs病毒的清除办法
    【行业翘楚】井田云:化解线上线下冲突让鱼与熊掌皆得
    Tuxedo入门学习
  • 原文地址:https://www.cnblogs.com/suolu/p/6709358.html
Copyright © 2020-2023  润新知