![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang基础
|晴天|
这个作者很懒,什么都没留下…
展开
-
markdown中插入本地图片
使用相对路径插入图片。比如你把一个叫做1.png的图片和*.md文件放在一起,那么你就可以用这种方式插入图片:![](1.png)如果不想放在同一层级,那么就可以这样插入:![](foldername/1.png)表示引用同层级一个叫做"foldername"的文件夹中的1.png图片,以此类推.应该所有markdown软件都支持这种语法吧,我用过的Mou ,macDown,Visual Studio Code等等是支持这种写法的。最大的优点就是不需要网络,做到本地存放图片。...原创 2021-07-01 17:56:37 · 20644 阅读 · 1 评论 -
解决go get后依赖包出现再pkg/mod下,且不能import
是由于设置了环境变量GO111MODULE,激活了modules通过go env查看配置信息D:\Code\GOProject\src\goDemo\TestMysql\Demo01>go envset GO111MODULE=onset GOARCH=amd64set GOBIN=set GOCACHE=C:\Users\**\AppData\Local\go-buildset GOENV=C:\Users\**\AppData\Roaming\go\envset GOEXE=.e.原创 2021-04-29 15:44:48 · 14982 阅读 · 0 评论 -
golang中解决协程不安全情况——Mutex
使用sync.Mutex加锁,解决竟态条件也可以使用管道channel,ch := make(chan bool)将如下两行注释掉,可复现协程不安全情况m.Lock()m.Unlock()package mainimport( "fmt" "sync" "time")var count = 0func countAdd(wg *sync.WaitGroup, m *sync.Mutex){ m.Lock() count += 1 m.Unlock() wg.Do.原创 2021-04-27 10:27:12 · 513 阅读 · 0 评论 -
命令行flag库使用解析——Golang
命令行参数的解析:flag库flag库解析——golang中文社区cobra库viper库原创 2021-04-20 16:04:32 · 197 阅读 · 0 评论 -
golang中序列化和反序列化---json.Unmarshal()
报错: json: Unmarshal(non-pointer message.Message)-----反序列化出错出现错误的原因是:在进行反序列化操作时:第二个参数应该i传地址&,实操过程中将&写掉了golang中函数都是值传递,若要修改具体数据,需要传地址&func Unmarshal(data []byte, v interface{}) errorjsonStr := `{"number":1234567}`result := make(map[string]i原创 2021-04-13 12:02:11 · 7840 阅读 · 0 评论 -
golang中字符串和数字转换
strconv.itoa()数字转成字符串,再与字符串拼接str := strconv.Itoa(12)println("str + '23' = ", str+"23")strconv.Atoi()数字型字符串转换成数字,再进行四则运算n, err := strconv.Atoi("123")if err!=nil { panic(err)}println("12+n = ", 12+n)// `结果`12+n = 135str + '23' = 1223fmt.S原创 2021-04-13 11:50:44 · 13763 阅读 · 0 评论 -
golang中的反射--初识(切片)
反射基本介绍package mainimport ( "fmt" "reflect")func reflectTest(a interface{}) { //1.通过反射获取传入变量的type //先获取reflect.Type rTyp := reflect.TypeOf(a) fmt.Println("rTyp = ", rTyp) //2.获取到reflect.value rVal := reflect.ValueOf(a) fmt.Printf("rVal = %原创 2021-04-08 16:52:03 · 674 阅读 · 0 评论 -
golang中类型断言
package mainimport ( "fmt" "reflect")type Cat struct { Name string Age int}func main() { var allChan chan interface{} allChan = make(chan interface{}, 10) cat1 := Cat{Name: "tom", Age: 12} cat2 := Cat{Name: "jack", Age: 23} allChan <原创 2021-04-08 10:07:16 · 106 阅读 · 0 评论 -
Go中计算程序执行时间
package main import ( "time" "fmt") func main() { startTime := time.Now().UnixNano() /* 程序主体 */ endTime := time.Now().UnixNano() seconds:= float64((endTime - startTime) / 1e9) // s Milliseconds:= float64((endTime -原创 2021-04-07 10:17:08 · 812 阅读 · 0 评论 -
类型断言
接口是一般类型,不知道具体类型如果要转换成具体类型,需要使用类型断言在进行类型断言时,若类型不匹配,会报panic错误,带上检测机制则不会。//类型断言--带检测 var aa interface{} var v = 0.12 aa = v //空接口接受任意类型 //带检测的类型断言 if c,ok := aa.(float64); ok { fmt.Println("assert success") fmt.Printf("c的类型%T,值为:%v", c, c) }else原创 2021-03-04 17:03:51 · 108 阅读 · 1 评论 -
go语言三大特性——封装、继承,多态
1、封装封装实现的步骤:原创 2021-03-03 18:10:46 · 808 阅读 · 3 评论 -
go中工厂模式
若包中结构体的变量名小写,则在其他包中不能直接使用,采用工厂模式解决原创 2021-03-03 16:58:30 · 128 阅读 · 1 评论 -
Docker中容器的使用
1、容器镜像安装# docker pull name(需要安装的容器名称)docker pull redis2、容器启动docker run -it ubuntu /bin/bash-i:交互式操作-t:终端ubuntu:ubuntu 镜像/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash2、容器终止docker stop 容器名或容器ID...原创 2021-03-02 18:52:27 · 106 阅读 · 0 评论 -
Nginx的安装教程详解-Windows
一、下载下载地址:http://nginx.org/en/download.htmlMainline version : 主线版本 ,最新的主线版本是 nginx/Windows-1.13.9Stable version : 稳定版本【工作中要更新最新版本就可以使用稳定版本】Legacy versions :历史版本二、安装部署1、下载完成后,解压缩,运行cmd,使用命令进行操作,不要直接双击nginx.exe,不要直接双击nginx.exe,不要直接双击nginx.exe一定要在dos原创 2021-03-02 14:57:30 · 581 阅读 · 0 评论 -
consul在windows下的安装
consul的下载:https://www.consul.io/downloads选择对应的系统版本修改环境变量path启动命令窗口执行命令consul agent -dev打开页面http://localhost:8500原创 2021-03-02 11:42:55 · 171 阅读 · 0 评论 -
Golang学习:10—面向对象编程
1、结构体2、方法3、工厂模式原创 2021-03-01 17:51:24 · 74 阅读 · 0 评论