go语言基础
从基础了解go语言。
假想迪
这个作者很懒,什么都没留下…
展开
-
golang写测试用例报no tests were run
在写go的测试test时,可能·会出现报 no tests were run 或者no test files问题,如果其他解决方法不行的话,可以试一下将该测试的文件名修改成蛇形如:trim_space_test.go 后面加一个 _test 就可以进行测试了。修改前:修改后:...原创 2021-02-07 10:30:14 · 4460 阅读 · 0 评论 -
Go语言中如何在range循环中修改数组/切片内容
在go语言中,我们经常会使用到range来帮助我们遍历一些数据,通常情况下都是查看操作多一些,但是当我们需要对其原地址上的内容进行变更时,通常都是使用 for i:=0; i<len(); i++ 来修改值。在使用range的时候,通常会将该数据结构进行拷贝,来遍历这一份拷贝后的副本,如果我们进行修改,修改的就只是副本,对原地址上的值不会产生任何影响。下面是两种使用range修改原值的方式:1. 使用指针数组让数据结构中的元素都存储为指针类型,这样在进行修改的时候,就是对地址上的值进行修改,毕竟原创 2021-01-29 10:25:59 · 5009 阅读 · 0 评论 -
Go语言遍历文件夹下的所有文件,并求出MD5
package mainimport ( "crypto/md5" "encoding/hex" "fmt" "io/ioutil")var files = make([][]byte, 100, 100)//[]byte转md5func ByteToMd5 (fileByte []byte) string { has := md5.Sum(fileByte) //用新的切片存放 has2 := has[:] md5Str := hex.EncodeToString(has原创 2021-01-08 19:12:27 · 762 阅读 · 1 评论 -
GO语言中的指针
我们最常听说的是C语言中的指针,但其实GO语言也有指针。GO语言中会允许这个指针类型对数据进行读写,在传递数据时可以直接使用指针,不用拷贝数据。但是GO语言中的类型指针是不能进行偏移和运算的,根据地址直接获取到整体的数据块。例如数组指针就是直接获取到整个数组信息,而不像c语言中通过偏移或运算来取到具体的元素数据。1. 指针的使用方法&用来取出地址,*用来根据地址取出地址指向的数据值。实际上,指针变量的值就是指针地址,对变量进行&操作可以获取到变量的地址,这个地址也就是指针变量。对指针变原创 2021-01-07 19:30:46 · 552 阅读 · 0 评论 -
GO语言变量作用域和数组
1. 变量的作用域对于变量来说我们主要分为三种,局部变量、全局变量以及形式参数。局部变量:作用域只在函数体内,参数和返回值变量也是局部。全局变量:可以在整个包甚至外部包(导出)中使用。全局变量和局部变量的名称可以相同,但是函数内会优先使用局部变量。形式参数:会被当做函数中的局部变量来使用。2. 数组数组是唯一具有相同类型的一组长度固定的数据项序列,序列中的数据类型可以是任意的基础数据类型、字符串或自定义结构体类型等。数组元素可以通过索引来对数据进行读写,索引从0开始,依次递增。数组声明格原创 2021-01-06 20:01:04 · 183 阅读 · 0 评论 -
GO语言中的函数
1. 函数声明go语言中必须有一个main()函数,函数声明提供给编译器函数名称、函数返回类型以及传入参数。go语言标准库中也提供了很多用于开发的内置函数。函数声明必须要用到func这个关键字。格式:func function_name([parameter list]) [return_types] { /*函数体*/}func:函数通过func开始声明。function_name:函数名。parameter list:参数列表。参数可比作一个占位符,调用函数时可以将数据传递给参数,这原创 2021-01-06 19:40:20 · 174 阅读 · 0 评论 -
GO语言中的循环语句
1. for循环for循环,重复执行语句块。如以下格式:for true { fmt.Println("死循环")}GO语言中没有while,只使用for语句,for后面也不用加括号,直接添加表达式即可。例如:for i := 1; i < 10; i++ { /*循环体*/}2. 循环控制语句break:用于中断当前for循环或跳出switch语句。continue:跳过当前循环的剩余语句,继续下一轮循环。goto:将当前执行跳转到被标记的语句。...原创 2021-01-06 17:49:11 · 367 阅读 · 0 评论 -
GO语言的常量和空白标识符
1. 常量1.1 格式同大部分语言一样,GO语言中的常量也是通过const关键字来进行声明的。格式:const v_name [type] = v_value和变量声明一样,可以省略类型说明符[type],编译器会根据常量的值来推断类型。1.2 枚举常量还可以用作枚举。例如:const ( apple = 1 banana = 2 lemon = 3)1.3 iota特殊常量iota,特殊常量,可认为是被编译器修改的常量。iota在const关键字出现时将被重置为0,const原创 2021-01-06 11:47:44 · 215 阅读 · 0 评论 -
GO语言的变量声明和基本数据类型
1. 基础语法1.1 变量的声明声明变量的一般形式是通过关键字 var ,var name type ,其中 name为变量名,type为变量的数据类型。以上为单变量声明,当然也可以在一个语句中对多个变量进行声明,var name1, name2 type = val1, val2,前提是多个变量的类型必须是相同的。1.2 省略var的变量声明在声明变量时也可以使用 := 来进行声明,但是 := 左侧必须为新的变量,如果没有声明新的变量,就会编译错误。具体格式为 v_name := v_value原创 2021-01-06 11:04:00 · 229 阅读 · 1 评论