数据类型有哪些?怎么使用?(在这里仅仅做简单介绍,后来会进行详细介绍)
(一)基础类型
- 布尔
有两种值bool或者true
- 数字类型
整型、浮点型
- 字符串类型
字符串是一串固定长度的字符拼接起来的字符序列,go语言字符串是由单个字节连接起来的go语言字符串的字节使用utf-8编码
(二)派生类型
(1)指针类型
var p int=10 var p1 *int var p2 **int p1=&p p2=&p1 //以下打印均为10 fmt.Println(p,*p1,**p2)
(2)数组类型
//声明数组的两种方式 //先声明后初始化 var my2arr [3][4]int //直接初始化 var myarray1 = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
(3)结构体类型
type man struct { id string name string age int }
(4)Channel类型(类似于队列,先进先出)
//这里声明了一个int型的通道 var a chan int
(5)函数类型(简单声明一个函数的方法)
//返回两个值中一个较大的值,相等则抛出异常 func maxs(a, b int) (error,int) { if a > b { return nil,a } else { return nil,b } return errors.New("相等"),0 }
(6)切片类型(可以随意进行切割,算头不算尾)
atemp := [11]int{1, 2, 3, 4, 5, 6, 9, 8, 7, 0} a2 := atemp[:6]
(7)接口类型(十颗星)
//接口的定义 type Phone interface { speak() read() } //类型的实现 type IPhone struct { } //接口功能的实现 func (a IPhone) speak() { fmt.Println("我叫sir,您好!") }
(8)Map类型
Map就是集合,有键有值 // 直接进行初始化 var name = map[string]string{"func": "123", "name": "66"} fmt.Println(name) // 使用make进行初始化 var name1 map[string]string name1 = make(map[string]string)
(三)变量的声明注意点
(1)变量声明的一般形式是使用var关键字,支持一次声明多个变量
(2)如果变量只进行了声明,没有对他进行赋值,那么int变量的默认值为0
bool类型变量默认为false str类型变量是“”(空字符串) 指针、数组、函数默认值为nil
(3)根据所给的值进行自我判断(值是什么类型,变量就是什么类型)
(4)声明赋值简写 a:=1(这种方式a的类型将与值的类型相同,并且这种声明方式不可以用于全局变量的声明)
相当于var a int a=1 如果使用var a int 后再使用a:=1就会报错
(5)因式分解式的变量声明(一般用于全局变量声明)
var( 变量1 类型1 变量2 类型2 )
(6)go语言中进行局部变量声明必须使用,不使用的话会进行报错,全局变量没事
(7)空白字符_(超级重要)
空白字符是一个只写变量,只能对其进行写入没办法将里面的数据进行读出 可以用于接收多返回值函数的某些特定位置的返回值 例如: _=10 一般用来忽略多余返回值,或用于通道
(8)交换两个数据可以这样写
a:=10 b:=100 // 交换a,b两个值 a, b = b, a • 1 • 2 • 3 • 4
如果看完本博客对go语言变量有了一定的认识,则达到了效果,后续还会进行每一种变量的详细介绍。
Go GO GO,加油!