- 博客(21)
- 收藏
- 关注
原创 go 中 = 与:= 区别
“=”的使用与其他语言相同,赋值操作,但是此处的变量必须提前声明好类型,或者在声明的同时赋值。“:=”的使用则类似于c++中的auto操作,自动匹配变量类型,省去了声明变量类型操作,也就是你可以不声明,在赋值使用的时候多加个冒号就可以了。package mainimport "fmt"func main(){ var a int a =10 fmt.Print(a)}结果如下:然后我们直接赋值试一试:package mainimport "fmt"func main(){ /
2021-04-05 14:04:46 762
原创 go - 构造复杂json串
例如在go中构造如下json串{"name":"alpha", "sex":"男", "age":18,"grade":{"gname":"wegame", "gdesc":"qq" } }在如下网址中输入以上json串可以自动生成对应的结构体https://mholt.github.io/json-to-go/type Autogenerated struct { Name string `json:"name"` Sex string
2021-04-05 03:25:51 872
原创 go -json 转map并判断是否存在
package mainimport ( "encoding/json" "fmt")//检查map里面是否存在某个key,返回字符串func mapExist(m map[string]interface{}, key string) string { if _, ok := m[key]; ok { return fmt.Sprintf("%v",m[key]) } else { return "" }}//解析json字符串成 mapfunc jsonStrin.
2021-04-04 23:54:27 802
原创 go - 发布订阅模型
// 3.5 发布订阅模型package mainimport ( "fmt" "strings" "sync" "time")type ( subscriber chan interface{} // 订阅者为一个通道 topicFunc func(v interface{}) bool // 主题为一个过滤器)// 发布者对象type Publisher struct { m sync.RWMutex //读
2021-04-04 23:32:12 170
原创 go -context
package mainimport ( "context" "fmt" "time")func main() { ctx, cancel1 := context.WithCancel(context.Background()) go func(ctx context.Context) { for { select { case v := <-ctx.Done(): fmt.Println("监控退出,停止了..., v: ", v, ", err:", c
2021-04-04 23:31:11 76
原创 go - struct
// 1.4 struct匿名成员(字段、属性)package mainimport "fmt"type Person struct { Name string Age int}type Student struct { score string Age int Person // 匿名内嵌结构体}func main() { var stu = new(Student) stu.Age = 22 //优先选择Stu
2021-04-04 23:30:03 77
原创 go - reflect
package mainimport ( "fmt" "reflect")func main() { str := "darren" val := reflect.ValueOf(str).Kind() fmt.Println(val) //string}
2021-04-04 23:28:37 82
原创 go - const
package mainimport ( "fmt" "time")const ( Man = 1 Female = 2)func main() { for { second := time.Now().Unix() if second%Female == 0 { fmt.Println("female") } else { fmt.Println("man") } time.Sleep(1000 * time.Millisecond) }
2021-04-04 23:27:13 94
原创 go -生成pb文件 -下
文件目录package mainimport ( "fmt" "github.com/golang/protobuf/proto" "test/mypro" //引入的proto的包 , go语言中,一个目录里面的所有文件都应设置成一个包)func main() { s1 := &mypro.Student{} //第一个学生信息 s1.Name = "jz01" s1.Age = 23 s1.Address = "cq"
2021-04-04 23:22:35 477
原创 go - str - byte
package mainimport ( "fmt" "strings" "unsafe" _ "unsafe")func test1() { bytes := []byte("I am byte array !") str := string(bytes) bytes[0] = 'i' //注意这一行,bytes在这里修改了数据,但是str打印出来的依然没变化, fmt.Println(str)}func test2() { bytes := []byte("I am by
2021-04-04 23:19:48 148
原创 go -生成pb文件 - 上
在使用 protoc 工具生成 go 代码的时候报出的如下错误:在syntax = “proto3”; //版本号版本中字段默认为syntax = “proto3”; //版本号protoc ./test.proto --go_out=./ WARNING: Missing 'go_package' option in "message.proto",please specify it with the full Go package path asa future release of pr
2021-04-04 03:16:25 1650
原创 go - range
package mainimport ( "fmt")func main() { str := "hello world,中国" for i, v := range str { fmt.Printf("index[%d] val[%c]\n", i, v) }}
2021-04-03 23:18:00 69
原创 go - random
package mainimport ( "fmt" "math/rand" "time")func init() { rand.Seed(time.Now().UnixNano())}func main() { for i := 0; i < 10; i++ { a := rand.Int() fmt.Println(a) } for i := 0; i < 10; i++ { a := rand.Intn(100) fmt.Println(a
2021-04-03 23:17:17 154
原创 go - pointer - ptr
package mainimport "fmt"func modify(p *int) { fmt.Println(p) *p = 1000900 return}func main() { var a int = 10 fmt.Println(&a) var p *int p = &a fmt.Println("the address of p:", &p) fmt.Println("the value of p:", p) fmt.Prin
2021-04-03 23:16:45 87
原创 go -func
package mainimport "fmt"func add(a, b int) int { return a + b}func test() { return}func main() { c := add sum := c(200, 300) fmt.Println(sum) str := "hello, world,中国" for index, val := range str { fmt.Printf("index[%d] val[%c] len[%d]
2021-04-03 23:16:14 86
原创 go -switch-fallthrough
package mainimport ( "fmt")func test_switch1() { a := 2 switch a { case 1: fmt.Println("a=1") case 2: fmt.Println("a=2") case 3: fmt.Println("a=3") case 4: fmt.Println("a=4") default: fmt.Println("default") }}func test_switch2()
2021-04-03 23:15:46 116
原创 go - const
package mainimport ( "fmt" "time")const ( Man = 1 Female = 2)func main() { for { second := time.Now().Unix() if second%Female == 0 { fmt.Println("female") } else { fmt.Println("man") } time.Sleep(1000 * time.Millisecond) }
2021-04-03 23:15:07 69
原创 go - interface
package main/**/import "fmt"//只要实现了speak方法的变量就是speak类型type speak interface { speak()}type cat struct {}type dog struct {}type person1 struct {}func (C cat) speak(){ fmt.Println("cat 抓人")}func (D dog) speak(){ fmt.Println("狗咬人")}func (P pe
2021-04-03 23:13:14 73
原创 go - json -struct
go - json -structgo - json -structgo - json -structgo - json -structgo - json -structgo - json -struct
2021-04-03 23:00:23 132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人