摘要:1.反射最佳实践 2.使用反射来遍历结构体的字段, 调用结构体的方法, 并获取结构体标签的值_代码 package main import ( "fmt" "reflect" ) // * 定义了一个Monster结构体 type Monster struct { Name string `json
阅读全文
摘要:1.反射练习题 2.1) 一个变量 var v float64 = 1.2,使用反射得到他的reflect.Value, 然后获得对应的Type, Kind和值, 并将reflect.Value 转换成 interface{},再将interface{} 转换成float64 package mai
阅读全文
摘要:1.反射注意事项和细节说明 2.5) 通过反射来修改变量, 注意当使用 SetXxx 方法来设置需要通过对应的指针类型来完成, 这样才能改变传入的变量的值, 同时需要使用到reflect.Value.Elem() 方法 package main import ( "fmt" "reflect" )
阅读全文
摘要:1.反射的快速入门和常量介绍 2.2. 请编写一个案例,演示对(结构体类型、interface{、reflect.Value)进行反射的基本操作_代码 package main import ( "fmt" "reflect" ) type Student struct { Name string
阅读全文
摘要:1.反射的快速入门 2.案例1. 请编写一个案例,演示对(基本数据类型、interface{}、reflect.Vaiue)进行反射的基本操作_代码 package main import ( "fmt" "reflect" // ! 反射用的包 ) // todo 1.1 专门演示反射的函数, 通
阅读全文
摘要:1.反射常见应用场景,反射重要函数和概念 2.3) 变量、interface{}和reflect.Value是可以相互转换的, 这点在实际开发中,会经常使用到。 3.反射的应用场景
阅读全文
摘要:1.channel使用细节和注意事项 2.goroutine 中使用recover, 解决协程中出现panic, 导致程序崩溃问题。【案例演示】_报错演示 package main import ( "fmt" "time" ) // 函数1 func sayHello() { for i := 0
阅读全文
摘要:1.channel使用细节和注意事项 2.3) 使用slect 可以解决从管道取数据的阻塞问题【案例演示】_代码 package main import ( "fmt" "time" ) // todo 3) 使用slect 可以解决从管道取数据的阻塞问题【案例演示】 func main() { /
阅读全文
摘要:1.channel使用细节和注意事项 2.三种管道定义方式 package main import "fmt" func main() { // 管道可以声明为只读或者只写 // * 1. 在默认情况下, 管道是双向 // 双向: 可读可写 var chan1 chan int // * 2. 声明
阅读全文
摘要:1.goroutine 和 channel 结合 2.协程求素数的代码效率测试_代码 package main import ( "fmt" "time" ) // * 2. 开启一个putNum 协程, 向管道 intChan 写入8000个整数 func putNum(intChan chan
阅读全文
摘要:1.协程求素数的实现_代码 package main import ( "fmt" "time" ) // * 2. 开启一个putNum 协程, 向管道 intChan 写入8000个整数 func putNum(intChan chan int) { fmt.Println(" writeDat
阅读全文
摘要:1.goroutine 和 channel 结合 2.思路分析
阅读全文
摘要:1.应用实例2 阻塞 2.应用实例2 阻塞代码,只写不读 package main import ( "fmt" "time" ) // * 2. 开启一个writeData 协程, 向管道 intChan 写入50个整数 func writeData(intChan chan int) { for
阅读全文
摘要:1.goroutine 和 channel 结合案例 2.思路分析 3.应用案例1_代码 package main import ( "fmt" "time" ) // * 2. 开启一个writeData 协程, 向管道 intChan 写入50个整数 func writeData(intChan
阅读全文
摘要:1.练习题目 package main import ( "fmt" "math/rand" "time" ) // 1) 创建一个 Person 结构体 [Name, Age, Address] // 2) 使用 rand 方法配合随机创建 10个 Person 实例, 并放入到 channel
阅读全文
摘要:1.channel 使用的注意事项 2.如果从 channel 取出数据后, 可以继续放入 package main import ( "fmt" ) // todo 演示管道的使用 func main() { // 1. 创建一个可以存放3个int类型的管道 var intChan chan in
阅读全文
摘要:1.channel管道快速入门案例 2.演示管道的使用_代码 package main import ( "fmt" ) // todo 演示管道的使用 func main() { // 1. 创建一个可以存放3个int类型的管道 var intChan chan int intChan = mak
阅读全文