Go语言学习笔记
文章平均质量分 57
元壮z
这个作者很懒,什么都没留下…
展开
-
Go语言学习笔记(十一)Go语言的字符串和字符类型
Go语言字符串(string)定义和说明Go语言中,字符串(string类型)是 UTF-8 字符的序列(当字符为 ASCII 码表上的字符时则占用 1 个字节,其它字符根据需要占用 2-4 个字节)。字符串是一个不可改变的字节序列,创建后不能再次修改,因为字符串本质上是用一个定长的字节数组实现的。字符串的使用var str1 string = "This is a string"str2 := "这是一个字符串"fmt.Println(str1)fmt.Println(str2)———原创 2022-02-10 14:15:26 · 1134 阅读 · 0 评论 -
Go语言学习笔记(一)Go语言的若干特性和环境安装
Go语言的若干特性Go语言是静态类型的编程语言。这意味着编译器需要在编译时知道程序里每个值的类型。提前知道类型信息有助于减少潜在的内存异常和bug,并且有机会对代码做一些优化,提高执行效率。Go语言中,函数传值默认采用值传递。函数会复制一份实参作为形参。因此传值一个数组,函数 会再复制一个数组,开销很大。Go语言中,变量可以定义时可以使用短变量声明操作符(:=),这样可以不写明类型。声明过的变量必须得到使用,否则会报错。// 定义一个整型变量var value1 intvalu原创 2022-02-07 11:21:15 · 197 阅读 · 0 评论 -
Go语言学习笔记(八)自定义类型
自定义类型定义Go语言中,值的类型给编译器提供两部分信息。一部分是这个值需要的内存大小,另一部分是这段内存表示什么。Go语言支持用户自定义类型,用户声明一个新类型时,相当于给编译器提供了一个框架,告诉编译器这个类型需要的内存大小和内存的表示信息。声明后类型的运作方式和内置类型类似。可以基于一个已有类型,作为新类型的类型说明。使用方式在标准库time包中,Duration 是一种描述时间间隔的类型,单位是纳秒(ns)。type Duration int64Duration使用内置的int64原创 2022-02-07 11:21:09 · 480 阅读 · 0 评论 -
Go语言学习笔记(七)映射
映射定义映射是一种数据结构,用于存储一系列无序的键值对。映射基于键来存储值,能够基于键快速检索数据,检索所需的时间复杂度为O(1)映射是一个无序的集合,能够迭代映射的元素,但是每次返回元素的顺序不同。内部实现映射的实现使用了散列表。这也是无序的原因。具体实现细节超过了初步学习的范畴,可以先不关注。创建和初始化// 创建一个nil映射,nil映射不能用于储存键值对,会产生语言运行时错误,只用来表示一个错误的映射var dict map[string][string]// 使用make函原创 2022-02-06 11:31:02 · 164 阅读 · 0 评论 -
Go语言学习笔记(六)切片
切片定义切片是go语言的动态数组,可以按需自动增长和缩小。内部实现切片是对数组的抽象,并提供了相关的操作方法。因为切片的底层是数组,所以切片的底层内存也是连续的,也就有快速获得索引,迭代和垃圾回收优化的好处。切片有三个字段。分别是指向底层数组的指针、切片的长度、切片的容量。在64位架构的机器上,一个切片需要24字节的内存,三个字段各需要8字节。切片的长度是能够访问到的范围。切片的容量是底层数组的大小。例如某切片的长度为3,容量为5,那么底层数组的大小就是5,能访问的索引范围为0-2。原创 2022-02-03 22:22:45 · 1134 阅读 · 0 评论 -
Go语言学习笔记(五)数组
数组定义数组是一个长度固定的数据类型,是用来存储同一种类型的元素的连续块。存储的类型可以是内置数据类型,也可以是自定义的结构体。内存占用数组占用的内存是连续分配的。内存连续的好处:1. CPU能把数据缓存更久的时间。2. 容易计算索引,可以快速迭代元素。声明和初始化声明数组需要指定存储数据的类型和数量。声明后,类型和长度就不能改变了。// 声明一个包含5个元素的整型数组var array [5]int// 使用数组字面量声明数组array := [5]int{}// 使用数组字原创 2022-02-03 10:04:05 · 1056 阅读 · 0 评论 -
Go语言学习笔记(前言)
Go语言学习笔记,笔记格式原创 2022-02-02 16:53:55 · 465 阅读 · 0 评论