Golang 递归创建文件路径

Jackey Golang 1,343 次浏览 0 评论
func main() { err := CreateMutiDir("/Users/jackey/a/b") if err != nil { fmt.Println("创建失败", err) } else { fmt.Println("创建成功") } } // CreateMutiDir 调用os.MkdirAll递归...

Golang 反射

Jackey Golang 1,139 次浏览 1 评论 ,
什么是反射 在运行期间(不是编译期间)探知对象的类型信息和内存结构、更新变量、调用他们的方法。 如何使用反射 函数的参数类型是interface{},需要在运行时对原始类型进行判断,针对不同的类型采取不同的处理方式。比如json...

Golang MongoDB 分片连接池

Jackey Golang, MongoDB 1,502 次浏览 0 评论 ,
package main import ( "context" "fmt" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" "go.mongodb.org/mongo-driver/mongo/readpref" "time" ) var Mong...

Golang 泛型应用

Jackey Golang 1,723 次浏览 0 评论 ,
声明一个泛型函数 package main import "fmt" func printSlice[T any](s []T){ for _,v := range s{ fmt.Printf("%v\n",v) } } func main(){ printSlice[int]([]int{66,77,88,99,100}) pri...

Golang 调用字符串函数名

Jackey Golang 1,476 次浏览 0 评论
package main import ( "fmt" "reflect" ) type Animal struct { A string `json:"a"` } func (m *Animal) Eat() { fmt.Println("eat", m.A) } func main() { animal := Animal{ ...

Golang Goroutine 顺序打印

Jackey Golang 1,702 次浏览 0 评论
题目要求: 有三个函数,分别打印“dog”,“fish”,“cat”,要求每个函数都起一个Goroutine,请按照“dog”,“fish”,“cat”的顺序打印在屏幕上,100次。 解题代码: package main import ( "fmt" "sync" "sync/atomic...

Golang 解析url参数为结构体数据

Jackey Golang 2,025 次浏览 0 评论 ,
需要引入包:github.com/dora-go/query-parser 示例代码: type pData struct { A string `schema:"a"` B string `schema:"b"` } func main() { urlPath := "https://ijackey.com/?a=a&b=b" data, _...

Golang 读取excel

Jackey Golang 2,343 次浏览 0 评论 ,
引用包: go get github.com/xuri/excelize/v2 示例代码: func main() { // 获取项目的执行目录 path := "go/src/excel" // 打开Excel文件 f, err := excelize.OpenFile(path + "/test.xlsx") if err !...

Beego MySQL连接池

Jackey Golang 2,015 次浏览 2 评论 , ,
beego的orm模块自带连接池功能,可以通过设置MaxIdleConns、MaxOpenConns来配置连接池属性。 SetMaxOpenConns用于设置最大打开的连接数,默认值为0表示不限制。 SetMaxIdleConns用于设置闲置的连接数。 设置最大的连接数,可以避...

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

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

Golang闭包取值陷阱

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