Golang

  • GoLang学习之变量定义和初始化

    变量命名原则go语言的变量名有字母数字和下划线组成,首字母不能为数字,但是字母不仅仅只限于英文字母,所有的UTF-8字符都是可以的。变量声明和初始化方式使用var关键字varaint=9varstrstring="jisuanji"注意,Go语言变量类型放在变量名之后!如果上面的代码段没有初始化值,......

  • Golang操作数据库

    基本概念Open()–createsaDBClose()-closestheDBQuery()-查询QueryRow()-查询行Exec()-执行操作,update,insert,deleteRow-Arowisnotahashmap,butanabstractionofacursorNext()S......

  • golang 图片处理,剪切,base64数据转换,文件存储

    本文主要介绍:1.图片文件的读写。2.图片在go缓存中如何与base64互相转换3.图片裁剪本文中,为了方便查看,去掉所有错误判断base64->fileddd,_:=base64.StdEncoding.DecodeString(datasource)//成图片文件并把文件写入到buffer......

  • (二)golang--windows下vscode的安装以及go环境的配置

    在官网上下载vscode对应的安装包,进行安装;安装的时候记得勾选加入到path路径;下载go语言的SDK:https://studygolang.com/dl目前最新版本是1.13.4,我就下这个吧go1.13.4.windows-amd64.zip(看以后会不会有问题)对zip文件进行解压,进入......

  • InfluxDB源码目录结构解析

    操作系统:CentOS7.3.1611_x64go语言版本:1.8.3linux/amd64InfluxDB版本:1.1.0influxdata主目录结构[root@localhostinfluxdata]#pwd/root/dev/golib/src/github.com/influxdata[r......

  • Go 参数传递是传值还是传引用

    什么是传值(值传递)?传值的意思是:函数传递的总是原来这个东西的一个副本、一个副拷贝。比如我们传递一个int类型的参数,传递的其实这个参数的一个副本;传递一个指针类型的参数,其实传递的是这个指针的一份拷贝,而不是这个指针指向的值对于int这类基础类型的我们可以很容易理解,它们就是一个拷贝,但是指针呢......

  • golang 切片和数组在for...range中的区别

    切片是引用类型,而数组是值类型,并且for...range有以下规则:range表达式只会在for语句开始执行时被求值一次,无论后边会有多少次迭代range表达式的求值结果会被复制,也就是说,被迭代的对象是range表达式结果值的副本而不是原值packagemainimport("fmt")func......

  • Go之获取Windows下文件是否隐藏

    起初,做了个小程序,用来检测磁盘中所有的文件packagemainimport("fmt""io/ioutil""os")vardirpath="D:\\"funcmain(){CheckDir(dirpath)}funcCheckDir(dirpathstring){dirs,err:=iouti......

  • golang:interface{}类型测试

    在golang中空的interface即interface{}可以看作任意类型,即C中的void*.对interface{}进行类型测试有2种语法:1.Comma-ok断言:value,ok=element.(T),其中T是具体类型.2.Switch测试:switchelement.(type){c......

  • golang的http分析

    首先,要认识一个贯穿始终的接口http.HandlertypeHandlerinterface{ServeHTTP(ResponseWriter,*Request)} 其中,两个参数,一个是表示响应的接口,另一个表示请求。具体方法先忽略:typeResponseWriterinterface{}使用......

  • RPC是什么?

    初学微服务,一点会问RPC是什么,通常网上的资料会说,是一种协议,然后说得很复杂,一堆概念,拜托,我只是想知道RPC是什么,而不是 怎么实现怎么做。RPC就是想实现函数调用模式的网络化,A服务(微服务)与B(微服务)服务互换数据,通过直接类似函数调用的方式来进行数据交换。那为什么不直接调用函数,那是......

  • Golang学习 - sort 包

    ------------------------------------------------------------//满足Interface接口的类型可以被本包的函数进行排序。typeInterfaceinterface{//Len方法返回集合中的元素个数Len()int//Less方法报告索......

  • 在 Mac、Linux、Windows 下Go交叉编译

    Golang支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。Mac下编译Linux和Windows64位可执行程序1CGO_ENABLED=0GOOS=linuxGOARCH=amd64gobuildmain.go2CGO_ENABLED=0GOOS=w......

  • 关于golang.org/x包问题

    关于golang.org/x包问题由于谷歌被墙,跟谷歌相关的模块无法通过goget来下载,解决方法:gitclonehttps://github.com/golang/net.git$GOPATH/src/github.com/golang/netgitclonehttps://github.com...

  • 类似 go get –u 的命令行参数实现

    我们可能需要类似goget–u….这样的方式来实现我们的应用,这时候我们无法简单地使用flag.Parse了,而是要用FlagSet了,使用例子如下: packagemainimport(   "flag"   "log"   "os")var()funcmain(){   //读取命令参数,注意,......

  • go中semaphore(信号量)源码解读

    运行时信号量机制semaphore前言作用是什么几个主要的方法如何实现sudog缓存acquireSudogreleaseSudogsemaphorepoll_runtime_Semacquire/sync_runtime_SemacquireMutexsync_runtime_Semrelease......

  • go中panic源码解读

    panic源码解读前言panic的作用panic使用场景看下实现gopanicgorecoverfatalpanic总结参考panic源码解读前言本文是在goversiongo1.13.15darwin/amd64上进行的panic的作用panic能够改变程序的控制流,调用panic后会立刻停止执行......