Go
文章平均质量分 68
AntHub
闻道有先后,术业有专攻;
有道无术尚可求,有术无道止于术;
熵减、熵减、熵减,还是熵减。
展开
-
go 反射
文章目录反射反射的相关函数基本数据类型的反射反射设置变量值结构体类型的反射反射操作结构体的属性和方法反射获取变量的类别示例代码运行结果反射包 reflect反射可以在运行时动态获取变量/实例的各种信息,例如:变量的类型;如果是结构体变量,反射还可以获取到结构体本身的信息(结构体的字段、方法等);通过反射可以修改变量的值,可以调用关联的方法;反射的相关函数relect.TypeOf(变量名): 获取变量的类型,返回 reflect.Type 类型;relect.ValueOf(变量名)原创 2022-04-05 20:38:59 · 398 阅读 · 0 评论 -
go 网络编程
文章目录tcp创建客户端创建服务端示例代码运行结果tcpnet 包;创建客户端Dial 创建客户端:func Dial(network, address string) (Conn, error)在网络network上连接地址address,并返回一个Conn接口。可用的网络类型有:"tcp"、"tcp4"、"tcp6"、"udp"、"udp4"、"udp6"、"ip"、"ip4"、"ip6"、"unix"、"unixgram"、"unixpacket"对TCP和UDP网络,地原创 2022-04-05 16:36:21 · 807 阅读 · 0 评论 -
go 协程与管道
文章目录协程注意事项互斥锁同步协程读写锁管道管道的定义管道的遍历只读/写管道管道的 select 功能defer + recover 机制处理错误示例代码运行结果协程用户态的轻量级线程;单个线程,用户态控制上下文切换;开启一个协程:go func_name()注意事项如果主线程退出了,则协程即使还没有执行完毕,也会退出;协程在完成了自己的认为后,先于主线程结束;为了防止主线程提前退出,使用:time.Sleep(tmie.Second*5); sync.WaitGroup.Wait()原创 2022-04-05 14:17:17 · 504 阅读 · 0 评论 -
go 断言、文件操作
文章目录断言文件操作打开、关闭文件读取文件写入文件文件复制示例代码运行结果断言可以判断变量的类型,并转换成T指定的类型:value, isTrue = element.(T), value 是变量的值,isTrue 是一个bool 类型,element 是interface 变量,T是断言的类型;Type-switch:Type-switch 是go语言中一种特殊的 switch 语句,它比较的是类型,而不是具体的值。它判断某个接口变量的类型,然后根据具体的类型再做相应处理,语法:func t原创 2022-04-04 22:15:14 · 354 阅读 · 0 评论 -
go 封装、继承、接口、多态
文章目录封装go 实现封装继承接口接口的注意事项多态代码运行结果封装隐藏实现细节,需要通过被授权的操作方法操作数据;可以对数据进行验证保证安全合理;go 实现封装结构体、字段的首字母小写(时间开发时没那么严格,因为封装就没那么严格)提供首字母大写的 get/set 方法操作属性/字段继承字段和方法的重用;go 中使用 匿名结构体实现继承机制;完全访问:结构体可以使用嵌套匿名结构体的所有字段和方法,首字母大写、小写的字段、方法都可以使用。简化访问:匿名结构体字段的访问可以简化原创 2022-04-04 17:01:42 · 644 阅读 · 0 评论 -
map与结构体、函数与方法
文章目录mapmap 特点面向对象结构体结构体之间的转换结构体传教示例时指定字段值跨包创建结构体方法方法和函数的区别代码运行结果mapjava 的map,python 的dict;var mapName map[int]string,声明完并没有分配内存空间;key 的可用类型:bool,数字,string,指针,channel;只包含前面几个类型的接口,结构体,数组key 通常为 int,string;value 通常为数字,string,map,结构体;slice,map,functio原创 2022-04-04 08:56:45 · 393 阅读 · 0 评论 -
golang 数组_切片
文章目录数组数组遍历数组初始化数组注意事项切片切片的几种定义方式切片遍历切片注意事项切片增删改查代码运行结果数组定义: var arr [5]int上面的数组类型为:[5]int; 数组长度属于数组类型的一部分;二维数组: var arr2d [2][3]int //arr2d类型是:[2][3]int数组遍历普通for 循环 + len()for-range 循环数组初始化var arr1 [3]int = [3]int{1,2,3};var arr2 = [3]int{1原创 2022-03-23 21:06:29 · 422 阅读 · 0 评论 -
go 命名与包;关于 ++/--;接收键盘输入/终端输入;switch;for 循环;函数;init 函数;匿名函数;闭包;defer;时间日期;内置函数;defer+recover 机制处理错误
文章目录命名与包关于 ++/--接收键盘输入/终端输入switchfor 循环函数init 函数匿名函数闭包defer时间日期内置函数defer+recover 机制处理错误数组代码输出命名与包;关于 ++/–;接收键盘输入/终端输入;switch;for 循环;函数;init 函数;匿名函数;闭包;defer;时间日期;内置函数;defer+recover 机制处理错误;数组studygolang.com/pkgdoc命名与包变量名、函数名、常量名:采用驼峰命名;变量名、函原创 2022-01-24 22:07:57 · 293 阅读 · 0 评论 -
Go 数据类型 类型转换 字符串 指针 标识符
文章目录字符串基本数据类型的类型转换基本数据类型转换为 stringstring 转基本数据类型指针标识符代码studygolang.com/pkgdoc字符串var s1 string = "Golang";字符串使用双引号表示,但引号不行;字符串不可变,指的时其中字符的值不能改变;不能使用类似 s1[0] = ''g 的方式进行修改;字符串中如果有特殊字符或者很长,可以使用反引号 `` 表示;字符串拼接使用 +, += ;当需要换行时,加号 要保留在上一行,否则编译器无法识别下一行还原创 2022-01-08 15:46:19 · 557 阅读 · 0 评论 -
idea Go-plugin: The selected directory is not a valid home for Go SDK
文章目录报错解决报错The selected directory is not a valid home for Go SDK;出现这个错误的原因是 idea 的Go-plugin 插件,和 Go 的sdk版本不匹配;尝试分别调整 插件版本、go-sdk 版本,或者通过 idea版本调整 插件版本解决从 IDEA - 2018.2.5 + Go_plugin-182.4505.32.913 + go_sdk - 1.17.5 -> IDEA - 2018.2.5 + Go_plug原创 2021-12-25 11:02:04 · 1488 阅读 · 0 评论 -
Go 语法 变量
文章目录简介一些语法go 数据类型demo code简介go的一个思想:一个问题尽量只有一个解决方案是最好的。go 中函数是第一等元素。studygolang.com/pkgdocgo build src.go # 编译go run src.go # 编译并运行,不生成exe可执行文件gofmt -w src.go # -w 写入源文件,否则会在标准输出/控制台显示格式化后的代码一些语法严格区分大小写;语句不需要分号;编译器是一行一行编译的,因此一行就写一条语句,多个语句原创 2021-12-25 10:44:52 · 173 阅读 · 0 评论