码迷,mamicode.com
首页 > 其他好文 > 详细

Go的数据类型

时间:2020-04-15 00:47:44      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:多个   ice   指定   死锁   数组   你好   数据   声明   maps   

1.map

map 是 key-value 数据类型

	maps := make(map[string]string,10)

	maps["hero1"] = "张三"
	maps["hero2"] = "李四"
	maps["hero3"] = "王五" 

 1) map 再使用前一定要make

 2) map 的key 是不能重复的,如果重复了,则会覆盖前的的key

 3) map 的 value 是可以相同的

 4) map 的key-value 是无序的

2.数组

数组是存放多个同一类型的数据,数组也是一种数据类型,在Go中,数组的值类型

        //定义一个存放10个string类型的数组
	var arr [10] string
	arr[0] = "你好"
	arr[1] = "真好"

	//定义一个存放5个string类型的数组
	var arr2 [5] string
	arr2[0] = "你好"
	arr2[1] = "真好"

	//快速声明数组
	arrString := [...]string{
		"1",
		"2",
		"3",
	}

  

  1) [10] string 和 [5] string 都是string的类型的数组,即使都是存放string类型,但是存放的个数不一样,就不是同一数据类型,Go语言是严格区分数据类型的

  2) 数组是通过下标的访问的,下标从0开始

3.slice (切片)

slice可以理解成动态数组,容量的可以动态变化的,也就是存放的个数不限制

 

	//快速声明数组
	arrString := [...]string{
		"1",
		"2",
		"3",
	}
	fmt.Printf("type:%T,value:%v\n",arrString,arrString)

	//slice的声明方式一,直接从数组里面切出来
	sliceByArray := arrString[0:]
	fmt.Printf("type:%T\n", sliceByArray)


	//slice的声明方式二,通过make
	sliceByMake := make([]string,10)
	sliceByMake[0] = "啦啦啦"
	sliceByMake[1] = "阿拉蕾"
	fmt.Printf("type:%T,value:%v\n",sliceByMake,sliceByMake)


	//slice的声明方式三,定义个切片
	slices := []string{
		"嗯哼",
		"是的",
	}
	fmt.Printf("type:%T,value:%v\n",slices,slices)

  1) slice也是通过下标去访问

4.struct (结构体)

//定义一个struct
type Person struct {
	Name string
	Age int
}

  1) struct 其实就是OOP里面的类,相当于Java里面的Class

5.channel (管道)

 channel 是引用类型,必须初始化之后才能使用,也就是要make一下

	//创建一个channel 存放string类型的数据
	channel := make(chan string,10)

	//往channel 里面存数据
	//注意,存数据的时候,如果超出容量的话,是会保存的,要考虑好管道里面数据的流动,即是有进有出
	channel <- "你好吖"

	//从channel 里面取数据
	<- channel

	fmt.Printf("channel len:%v ; cap=%v \n",len(channel),cap(channel))

  1) channel 里面存放指定的数据类型

  2) channel 的数据放满后,就不能再继续存放了,只有从里面取出数据,才能再存放数据了

  3) 在没有使用协程的情况下,如果channel 数据取完了,再取,就会报 dead lock (死锁)

 

Go的数据类型

标签:多个   ice   指定   死锁   数组   你好   数据   声明   maps   

原文地址:https://www.cnblogs.com/python-boy/p/12702023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!