Go 变量及基本数据类型1

#### Go 变量及基本数据类型(一)
今天主要学习一下Go 中的变量及基本数据类型: 如何申明,使用变量,以及基本数据类型的介绍和使用细节;
##### 变量的介绍
1. 变量相当于内存中一个数据存储空间的表示, 也可以把变量看做是一个房间的门牌号, 通过门牌号可以找到房间, 同理通过变量名可以访问到变量的值;
##### 变量的使用步骤
1. 声明变量
2. 非变量赋值
3. 使用变量
案例:

package main 
import "fmt" 
func main(){
    // 定义变量, 也叫声明变量
    var i int 
    // 给变量赋值
    i = 10 
    // 使用变量
    fmt.Println("i=",i)
}

 

##### 变量使用注意事项
1. 变量表示内存中的一个存储区域
2. 该区域有自己的名称(变量名)和类型(数据类型)
示意图:

3. Go 变量使用的三种方式
3.1 指定变量类型, ***声明后若不赋值,使用默认值***;

package main
func main(){
    // 声明后若不赋值, 使用默认值
    // int 类型的默认值是0
    var i int 
    fmt.Println("i=",i)
}

  

3.2 根据值自动判断变量的类型(称为类型推导)

// 根据值自动判断变量的类型
var i = 11
fmt.Println("i=",i)

  

3.3 省略var , := 左侧的变量不应该是声明过的,而且此种方式,只能使用于函数内;

func test(){
// 省略var , := 左侧的变量不能是已经声明过的,否则编译失败
name := "Tom"
fmt.Println("name=",name)
}

  

3.4 多变量声明

package main
import "fmt"
func main(){
    // 声明多个变量
    var a1,a2,a3 int 
    // 为多个变量赋值
    a1,a2,a3 = 1,2,3
    fmt.Println(a1,a2,a3)

    // 声明多个变量并赋值
    var a4,a5,a6 = 4,"5",6.6
    fmt.Println(a4,a5,a6) 

    // 类型推导方式 
    a7,a8,a9 := 5,"6",7.7
    fmt.Println(a7,a8,a9)
}

  

3.5 全局变量的定义(在函数外部定义的变量为全局变量)***全局变量不可以使用:= 方式声明***

// 定义全局变量
package main
import "fmt"
var n1 = 1
var n2 = 2 
// 也可以一次性声明
var (
n3 = 3 
n4 = 4 
)
func main(){
    fmt.Println(n1,n2,n3,n4)
}

 3.6 变量在同一个作用域(在同一个函数或者同一个代码块)不能重名 

func test(){
    var i = 10
    i := 11 // 错误, 同一个作用域不能重名)
}

  

3.7 变量如何没有赋值,编译器会使用默认值, int 默认值0, string 默认值为"", 小数类型默认0, bool 类型为false;
##### 程序中 "+" 号的使用
1. 当左右两边都是数值类型时, 做加法运算;
2. 当左右两边都是字符串时, 做字符串拼接;

package main
import "fmt"
func main(){
    var a1 = 1 
    var a2 = 2 
    var s1 = "hello "
    var s2 = "world"
    fmt.Println(a1+a2) // 加法运算
    fmt.Println(s1+s2) // 拼接
}

##### 基本数据类型的介绍
每一个数据都定义了明确的数据类型, 在内存中分配不同大小的内存空间
1. 基本数据类型
1.1 整数类型(int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64)
1.2 浮点类型(float32,float64)
1.3 字符型(使用byte 保存单个字母字符)
1.4 布尔型(bool)
1.5 字符串(string)
2. 复杂数据类型
2.1 指针(Pointer)
2.2 数组(array)
2.3 结构体(struct)
2.4 管道(channel)
2.5 函数(func)
2.6 切片(slice)
2.7 接口(interface)
2.8 map

posted @ 2019-08-12 18:25  mail_maomao  阅读(175)  评论(0编辑  收藏  举报