go 生成密码 php的 password_hash go实现
2023-09-21
435
587
packagemain
import(
"fmt"
"golang.org/x/crypto/bcrypt"
)
funcmain(){
hashedPassword:=passwordHash("123456")
fmt.Println(hashedPassword)
hashedPassword=
go 空接口类型的变量的使用
2023-07-17
547
738
// interface{} 在 Go 中是一个特殊的类型,表示任何类型,类似于 C# 中的 object 类型或 Java 中的 Object 类型。// 它可以接收任何类型的值,但如果我们需要使用其原始类型的值,我们需要进行类型断言。packagemain
import(
"fmt"
)
funcmain(){
//定义一个空接口类型的变量可以给空接口
go 递归读取目录中所有文件和目录 读取当前目录的文件和目录
2023-06-30
542
731
递归读取目录中所有文件和目录//ReadDirAll递归读取目录中所有文件和目录
funcReadDirAll(pathstring)([]string,error){
varfiles[]string
err:=filepath.Walk(path,func(pathstring,infoos.FileInfo,errerror)error{
iferr!=nil{
re
go 递归读取目录,并生成树形结构的数据
2023-06-30
421
568
go 递归读取目录,并生成树形结构的数据//读取目录中的所有文件,如果是目录则递归读取,生成结构化的树形struct
packagemain
import(
"encoding/json"
"fmt"
"os"
"path/filepath"
)
//TreeNode文件的树形结构体
ty
Lazarus IDE 的 Panel 组件 去除底部和右侧的边框标线
2023-06-22
207
279
Lazarus IDE 的 Panel 组件 去除底部和右侧的边框标线 把BevelOuter 属性改为 byNone,改为byNone看不到组件的边界,可以设置背景图Color 属性。
使用 govcl 开发桌面UI 在 Lazarus IDE 编译中报错
2023-06-22
343
463
使用 govcl 开发桌面UI 在 Lazarus IDE 编译中报错go build -i -buildmode=exe -ldflags="-H windowsgui" -tags="tempdll" -o "project1.exe"flag provided but not defined: -iusage: go build [
go WaitGroup 的使用方法
2023-03-23
271
365
在 Go 中,sync 包下的 WaitGroup 能有助于我们控制协程之间的同步。当需要等待一组协程都执行完各自任务后,才能继续后续逻辑。这种场景,就非常适合使用它。WaitGroup 提供三个 API。Add(delta int) 函数提供了 WaitGroup 的任务计数,delta 的值可以为正也可以为负,通常在添加任务时使用。Done() 函数其实就是 Add(-1),在任务完成时调用。
Go 中 实现基于 channel 的简单 生产者 消费者模型
2023-03-23
451
608
Go 中 实现基于 channel 的简单 生产者 消费者模型packagemain
import(
"fmt"
"strconv"
"sync"
)
//生产者
funcproducer(chchan<-string,wg*sync.WaitGroup){
deferwg.Done()
fo
go 协程管理及传参处理
2022-10-18
1452
1960
Go语言中的goroutine虽然相对于系统线程来说比较轻量级(初始栈大小仅2KB),(并且支持动态扩容),而正常采用java,c++等语言启用的线程一般都是内核态的占用的内存资源一般在4m左右,而假设我们的服务器CPU内存为4G,那么很明显才用的内核态线程的并发总数量也就是1024个,相反查看一下Go语言的协程则可以达到4*1024*1024/2=200w.这么一看就明白了为什么Go语言天生支持