分类 Go 下的文章

《Go语言圣经》学习笔记:Slice

Slice(切片)代表变长的序列,序列中每个元素都有相同的类型,slice的语法和数组很像,只是没有固定长度而已。一个slice由三个部分构成:指针、长度和容量。指针 指向第一个slice元素对应的底层数组元素的地址,要注意的是slice的第一个元素并不一定就是数组的第一个元素。长度 对应slice中元素的数目(长度不能超过容量)。容量 一般是从slice的开始位置到底层数据的结尾位置。1. 关于slice的长度和容量关于长度和容量的理解,可以参考下图:内置的len和cap函数分别返回slice的长度和容量。如果切片操作超出cap(s)的上限将导致一个panic异常,但是超出le ......
<阅读全文>

Go语言计算字符串长度:len()和RuneCountInString()

1. len() 函数Go 语言的内建函数 len(),可以用来获取切片、字符串、通道(channel)等的长度。下面的代码可以用 len() 来获取字符串的长度:s1 := "hello, world" fmt.Println(len(s1)) s2 := "世界" fmt.Println(len(s2)) 程序输出如下:12 6 len() 函数的返回值的类型为 int,表示字符串的 ASCII 字符个数或字节长度。输出中第一行的 12 表示 s1 的字符个数为 12。输出中第二行的 6 表示 s2 的字符格式,也就是“世界”的字符个数 ......
<阅读全文>

Go数组切片的长度和容量

切片可以看成是数组的引用。在 Go 中,每个数组的大小是固定的,不能随意改变大小,切片可以为数组提供动态增长和缩小的需求,但其本身并不存储任何数据。切片的长度是它所包含的元素个数。切片的容量是从它的第一个元素到其底层数组元素末尾的个数。切片 s 的长度和容量可通过表达式 len(s) 和 cap(s) 来获取。当数组的容量发生了变化,那么数组的内存地址就会发生变化。数组切片左边界值控制切屏容量([2:),右边界值控制切片长度([0:3])。
<阅读全文>

Go环境设置问题

问题1:go.mod file not found in current directory or any parent directory; see 'go help modules' 在说解决办法之前,先说明下背景:开发环境:go version go1.18.4 windows/amd64项目路径:C:\Users\Lam\Desktop\golang\github.com\lamxops\testpro解决1:要解决这个问题,需要先了解Go语言的模块管理方式:在 Go 1.11 之前,要求模块存在于 GOPATH 下,我们这里称 “GOPATH 模块管理方式” ;在 Go ......
<阅读全文>

《GO语言之旅》学习笔记:流程控制语句 - for、if、else、switch 和 defer

Go语言之旅中文网站:Go语言之旅一、for1.1 for 说明Go 只有一种循环结构:for 循环。基本的 for 循环由三部分组成,它们用分号隔开:初始化语句:在第一次迭代前执行条件表达式:在每次迭代前求值后置语句:在每次迭代的结尾执行初始化语句通常为一句短变量声明,该变量声明仅在 for 语句的 作用域 中可见。一旦条件表达式的布尔值为 false,循环迭代就会终止。例子:package main import "fmt" func main() { sum := 0 for i := 0; i < 10; i++ { ......
<阅读全文>