随笔分类 - Golang
摘要:GOPATH 从 Go 1.8 版本开始,Go 开发包在安装完成后,将 GOPATH 赋予了一个默认的目录,参见下表 image.png 在Jetbrains 公司的 GoLand 集成开发环境(IDE)中GOPATH分两种: 1、Global GOPATH 2、Project GOPATH Glo
阅读全文
摘要:Golang http 通用方法 func HandleError(err error, reason string) { if err != nil { println(err, reason) } } func getContentByUrl(url string) string{ resp,
阅读全文
摘要:/^正则表达式$/ 参考: https://www.runoob.com/regexp/regexp-syntax.html https://studygolang.com/pkgdoc golang regex https://regexr.com/ 正则在线检测 非打印字符 字符 描述 \n 换
阅读全文
摘要:Golang 反射 基本介绍 注意通过指针变量获取的变量是地址 //指针变量的kind fmt.Printf("%v\n", reflect.TypeOf(&student).Kind()) //ptr //指针变量的 type fmt.Printf("%T\n", &student) //*mai
阅读全文
摘要:Golang 常量 参考: https://www.cnblogs.com/chenbaoding/p/12197244.html https://www.jianshu.com/p/08d6a4216e96 定义 const identifier type 不能将一个变量赋值给常量 Go中没有常量
阅读全文
摘要:Golang Channel 定义 channel本质是队列 线程安全, 多goroutine访问时, 不需要加锁,就是说channel本身线程安全 channel有类型,一个string的channel只能存放string 声明 var identifier chan type channel是引
阅读全文
摘要:Golang 协程 协程的特点 独立的栈空间 共享程序堆空间 调度由用户控制 协程是轻量级的线程 如果函数有返回值, 使用协程时, 返回值将被吞掉 案例 编写一个程序完成如下功能: 在主线程中,开启一个goroutine, 该协程每隔1秒输出“hello world” 在主线程中也每隔一秒输出“he
阅读全文
摘要:Golang 测试框架 案例 cal.go package test func add(a,b int) int{ return a + b } cal_test.go package test import ( "fmt" //引入go的测试框架 "testing" ) //测试框架的函数必须以T
阅读全文
摘要:Golang IO 如果使用相对路径,采用project structure中指定的路径 文件操作 判断文件目录是否存在 //返回文件的信息, 如果err == nil 表示文件或目录存在 stat, err := os.Stat("test1.txt") fmt.Println(stat) //判
阅读全文
摘要:![](https://img2020.cnblogs.com/blog/2005355/202008/2005355-20200814015715235-2064459159.png)
阅读全文
摘要:Golang 类型断言 案例 func main() { //定义一个空接口类型 var x interface{} var y float32 = 1.1 //多态 x = y //y = x 错误 y = x.(float32) fmt.Println(y) } 定义 由于接口时一般类型,不知道
阅读全文
摘要:Golang 接口 案例 //定义一个接口 type Usb interface { start() stop() sum(int, int) int } type phone struct { } //实现接口方法 func (p phone) start() { fmt.Println("imp
阅读全文
摘要:Golang 继承 案例引入 type Person struct { Name string Age int } //Go继承使用匿名嵌套 type Student struct { Person sNo int } func (person *Person) say() { fmt.Printl
阅读全文
摘要:Golang 方法 定义 func (recevier stuctType)identifier()(){} 方法只能被structType的实例调用 As Follow type Monster struct { Name string Age int skill string } //Say方法
阅读全文
摘要:Golang 结构体 定义 **注意!!!**Go中结构体是值类型, 不同于Java中的类是引用类型 type typeName struct{//如果结构体名为小写就表示只能被当前包使用, 反之可以被所有包使用 filed type //字段 filed type //指针, slice 和map
阅读全文
摘要:Golang map 声明 var map identifier [keytype]valuetype 和Java中的HashMap相似, 可以使用多种类型作为key, 但是除slice, map, function外 注意: 声明是不会分类内存的, 初始化需要make, 分配内存后赋值使用 相同的
阅读全文
摘要:Golang string slice string底层是一个byte数组, 因此string也可以进行切片处理 func main() { //str底层是一个byte数组, 所以可以使用切片 str:="hello world" slice := str[:5] fmt.Println(slic
阅读全文
摘要:Golang 切片 定义 切片是数组的一个引用, 因此切片是引用类型, 在进行传递时, 遵守引用传递的机制 func main() { //定义一个切片 arr := [...]int{1, 2, 3, 4} //表示截取arr的[1,3) sArr := arr[1:3] fmt.Println(
阅读全文
摘要:Golang 数组 数组的四种初始化 func main() { var arr1 [3]int fmt.Println(arr1) //int[] arr = new int[3]{1,3,4}; Java中报错 var arr2 = [3]int{1, 2, 4}// var arr2 [3]i
阅读全文
摘要:Golang随机数 默认Seed(1), 输出的结果固定, 相当于Java中Random random = new Random(1); func main() { arr := [4]int{} for i := 0; i < len(arr); i++ { arr[i] = rand.Intn(
阅读全文