Golang 跳出 for-switch 和 for-select 代码块

Jackey Golang 877 次浏览 0 评论
没有指定标签的 break 只会跳出 switch/select 语句,若不能使用 return 语句跳出的话,可为 break 跳出标签指定的代码块: // break 配合 label 跳出指定代码块 func main() { loop: for { switch { cas...

Golang闭包取值陷阱

Jackey Golang 564 次浏览 0 评论 ,
运行一下代码查看输出情况: func main() { tests1ice := []int{1, 2, 3, 4, 5} for _, v := range tests1ice { go func() { fmt.Println(v) }() } time.Sleep(time.Millisecond...

Golang 利用unsafe.Pointer进行指针操作

Jackey Golang 750 次浏览 0 评论 ,
func main() { data := []int{1, 2, 3} for i := 0; i < len(data); i++ { ptr := unsafe.Pointer(uintptr(unsafe.Pointer(&data[0])) + uintptr(i)*unsafe.Sizeof(data[0])) fmt.Printf("%d ", *...

Golang 操作MongoDB连接池示例

Jackey Golang 1,939 次浏览 0 评论 ,
package main import ( "context" "fmt" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" "go.mongodb.org/mongo-driver/mo...

Golang 踩坑之切片的陷阱

Jackey Golang 822 次浏览 0 评论 ,
以下两个函数执行结果一样吗?为什么? func f2() { ia := [...]int{1, 2, 3, 4, 5} ia2 := ia[1:3] for i := 6; i < 10; i++ { ia2 = append(ia2, i) } fmt.Println(ia, ia2) } func f1()...

设计模式整理

Jackey Golang 1,070 次浏览 1 评论
设计模式的六大原则 开闭原则 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。在软件的生命周期内,因变化、升级和维护对原有代码进行修改,可能会引入错误。所以当软件需要变化时,通过扩展软件实体的行为来实现变化,...

Golang设计模式之命令模式

Jackey Golang 1,393 次浏览 0 评论 , ,
创建文件Command.go package command type Command interface { Execute() // 执行 } 创建文件motherBoard.go package command import "fmt" type MotherBoard struct { } func (*MotherBoard) WashClothes()...
Go