lang
张建闯
这个作者很懒,什么都没留下…
展开
-
go语言学习笔记 之 反射
反射的作用反射可以在运行时动态获取变量的各种信息,比如变量的类型(type),类别(kind)如果是结构体变量,还可以获取到结构体本身的信息(结构体的字段、方法)通过反射,可以修改变量的值,可以调用关联的方法官方文档:https://studygolang.com/pkgdoc反射的使用// 获取typet := reflect.TypeOf()// 获取valuev := reflect.ValueOf()// 将值转换为接口类型inter := v.Interface(原创 2022-03-13 16:50:54 · 374 阅读 · 0 评论 -
go语言学习笔记 之 协程(goroutine)
特点go主线程是一个物理线程,直接作用在CPU上,重量级,非常耗费CPU资源协程是从主线程开启的,是轻量级的线程,是逻辑态,资源消耗相对较小go可以轻松开启上万个协程MPGM: 操作系统的主线程P: 协程执行需要的上下文环境G: 协程当多个主线程运行在一个CPU核中,认为该状态为并发当多个主线程运行在多个CPU核中,认为该状态为并行使用支持使用runtime.GOMAXPROCS方法设置使用的CPU核数package mainimport ( "fmt" "s原创 2022-02-27 20:53:35 · 399 阅读 · 0 评论 -
go语言学习笔记 之 测试
测试用例文件名称必须以_test.go结尾文件内的单元测试方法名称必须以Test开头,而且Test前缀之后的第一个字符必须是大写参数只能是*testing.T运行测试的指令go test可以只测试某个文件go test a_test.go a.go,也可以只测试某个方法go test a_test.go TestMethod...原创 2022-02-27 19:46:59 · 54 阅读 · 0 评论 -
go语言学习笔记 之 JSON
结构体序列化package mainimport ( "encoding/json" "fmt")type Cat struct { // 后面``中的内容是给字段加个别名,在json序列化时会序列化为后面的别名 Name string `json:"name"` Age int `json:"age"` Color string `json:"color"`}func main() { c := Cat{ Name:"加菲", Age:10, Color: "y原创 2022-02-27 17:34:40 · 159 阅读 · 0 评论 -
go语言学习笔记 之 脚本
命令行参数使用命令go build -o test main.go生成可执行文件接收不指定的参数package mainimport ( "fmt" "os")func main() { fmt.Println(os.Args) for i, arg := range os.Args { fmt.Printf("第%d个参数为%s\n", i, arg) }}输出结果$ ./test a b c d e f g # 一下为输出[./test a b c d e f g原创 2022-02-27 16:55:05 · 1128 阅读 · 0 评论 -
go语言学习笔记 之 IO
go文档:https://studygolang.com/pkgdoc读取文件package mainimport ( "bufio" "fmt" "io" "io/ioutil" "os")func main() { // 获取文件 file, err := os.Open("test.txt") if err != nil { fmt.Println("error", err) return } defer file.Close() // 读取文件内数据原创 2022-02-27 16:13:15 · 102 阅读 · 0 评论 -
go语言学习笔记 之 go语言基础
变量声明// 先声明再赋值var v1 intv1 = 1// 声明且赋值var v2 = 2// 声明且赋值2v2_1 := 21// 多变量赋值var v3,v4,v5 = 3,"abc",5.0// 多变量赋值2v3_1,v4_1,v5_1 := 3,"abc",5.0// 多变量声明var v6,v7,v8 int// 全局变量声明方式var( v9 = 100 v10 = "global" v11 = 1.1)...原创 2022-02-19 12:23:15 · 235 阅读 · 0 评论