随笔分类 - Go语言
摘要:Go语言实现全排列(LeetCode 46. 全排列) 简单粗暴回溯法 func permute(nums []int) [][]int { res := [][]int{} visited := map[int]bool{} var dfs func(path []int) dfs = func(
阅读全文
摘要:解决go get 获取不到国外包的问题 获取gopm gopm能绕过防火墙,其实是在网上有一个镜像,然后从镜像中拿到需要的包 go get -v github.com/gpmgo/gop 等待下载结束后就可以下载国外的一些包了
阅读全文
摘要:Go语言实现队列 最简单简介的实现队列 直接对[]int进行方法的追加就行了 package main import "fmt" // A FIFO queue. type Queue []int // Pushes the element into the queue. // e.g. q.Pus
阅读全文
摘要:Go语言实现区块链挖矿基于POW共识 注释都已经标注上了 代码如下: package main import ( "time" "strconv" "crypto/sha256" "encoding/hex" "fmt" "strings" ) //通过代码,实现PoW挖矿 //定义区块 type
阅读全文
摘要:Go语言时间处理与定时器 1、时间处理之延迟执行 package main import ( "fmt" "time" ) func main() { timer1 :=time.NewTimer(time.Second*3) <- timer1.C //阻塞,5秒以后继续执行 fmt.Printl
阅读全文
摘要:使用案例大白话讲解Go语言并发go chan select close 1、初识Go并发-go关键字实现多线程 使用go 关键字可以开辟一个新的协程(线程)线程之间并行执行 package main import ( "fmt" "time" ) func printData(data string
阅读全文
摘要:Go语言格式化输出fmt.printf中的%d、%c 、%s 、%v 、%t ... 各个格式化输出结果如下: package main import "fmt" import "os" type point struct { x, y int } func main() { // 打印结构体 p
阅读全文
摘要:在命令行输入docker version 可以获取到docker 自身的基本信息 怎么通过程序去获取这些信息呢? 这里使用的是官方提供的SDK,在之前我写了一篇获取程序获取docker ps信息 原理基本上一模一样,可以先参考一下这篇博客。 程序如下 实例程序,只获取简单的字段,其实是可以获取到这里
阅读全文
摘要:在命令行中我们可以通过docker ps命令去获取当前正在执行的容器。那么怎么在程序中获取到这些信息呢? 这里使用的是Docker GO语言的SDK,官网参考链接为:SDK 除了GO语言外,还支持Python语言和HTTP获取。 一、首先需要获取到SDK的依赖包 主要是以下两个包,将其放到$GOPA
阅读全文
摘要:Go语言轻量级框架-Gin与入门小案例MySQL增删查改 简单的使用一下gin框架,然后使用它完成数据库的增删查改 一、安装和开始 要想使用gin必须要下载和安装它,切换到自己的工作空间,执行go命令 go get -u github.com/gin-gonic/gin 但是因为网络问题可能会失败,
阅读全文
摘要:Go语言实现MySQL连接和增删查改操作 1、mysql数据库驱动安装 go语言连接数据库的驱动是:go-sql-driver,在使用mysql之前要下载驱动 打开命令行输入 go get -u github.com/go-sql-driver/mysql 2、创建数据库表 下文实例中的数据库表SQ
阅读全文
摘要:###背景 在学习go语言过程中从github下载了几个项目,但是使用golang通篇报红,GOPATH反复检查没有设置错,各种方法都找遍了,最终解决了记录一下。 ###解决办法 在golang的设置里面将图中这个勾去掉 ###原因 原因是Goland 编辑器中项目设置为 go modules 项目
阅读全文
摘要:练习篇-Go语言版简单学生信息管理系统 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 ) 7 8 //怎么又是学生信息管理系统 9 //学生类 10 type Student struct { 11 StuId string 12 StuName stri
阅读全文
摘要:一、定义struct并创建对象及所有的初始化对象的方式 1 package main 2 3 import "fmt" 4 5 // type 关键字表示定义一种类型 6 // struct 表示定义一个类 里面的字段占用一块连续的内存空间 7 type User struct { 8 UserNa
阅读全文
摘要:一、init函数demo 程序执行的顺序1、先执行全局化变量的初始化 -> 2、执行init函数初始化 -> 3、执行main函数 1 package main 2 3 import "fmt" 4 5 6 7 //init函数没有返回值 也没有参数 而且init函数可以有多个 8 func ini
阅读全文
摘要:基本操作都在以下代码里面啦 1 package main 2 3 import "fmt" 4 5 func main() { 6 // map key:value 7 // var 变量名 map[key]value 8 var a map[string]int 9 //var b map[int
阅读全文
摘要:运行代码观察现象: 1 package main 2 3 import "fmt" 4 5 func change(num *int32) { 6 *num += 100 7 } 8 9 func main() { 10 var a int32 11 a = 100 12 fmt.Printf("a
阅读全文
摘要:go语言实现一个密码生成工具,支持以下功能 代码讲解地址:https://www.bilibili.com/video/BV1v5411W7t3?p=52 1 package main 2 3 import ( 4 "flag" 5 "fmt" 6 "math/rand" 7 "time" 8 )
阅读全文
摘要:一、切片的概念和基本操作 1 package main 2 3 import "fmt" 4 5 //切片定义 切片是基于数组类型的一层封装。它非常灵活,可以自动扩容,切片是一个引用类型 6 func main() { 7 var a [5]int // []内写了数字就是数组 没写数子就是切片 8
阅读全文