#GoLang

Golang的面向对象编程【结构体、方法、继承、接口】

Golang也支持面向对象编程。但与以前学过传统的面向对象编程语言有区别。1)Golang没有类class,Go语言的结构体struct和类class有相似的特性。2)Golang中不存在继承,方法重载,构造函数,析构函数,隐藏和this指针。3)Golang有继承,封装,多态的特性,但是实现方法与传统OOP语言不同。...

golang make()的第三个参数

学习了一段时间golang,大概可以用golang做一些小东西了,于是回顾了一下一些基础的东西。golang分配内存有一个make函数,该函数第一个参数是类型,第二个参数是分配的空间,第三个参数是预留分配空间,前两个参数都很好理解,但我对第三个参数却一脸懵逼,例如a:=make([]int,5,10),len(a)输出...
代码星球 ·2020-10-02

golang基础学习-MongoDB使用

Golang:goversiongo1.10.3darwin/amd64OS:MacOSMongoDB:version:3.4.4使用:gopkg.in/mgo.v2获取包:gogetgopkg.in/mgo.v2引入:import"gopkg.in/mgo.v2"mgo简介3.1数据设计3.1.1数据库设计:数据库名...

golang:mgo剖析之Session

  golang操作mongo使用的包是"gopkg.in/mgo.v2",coding过程中需要并发读写mongo数据库,简单观摩了下源码,记录下自己的一些理解,如有错误,敬请斧正。   一般来说,我们直接这样创建一个session:Session, err = mgo.Dial(URL...
代码星球 ·2020-10-02

golang remote debug和docker debug

在编写Go代码的时候,因为很多时候都是需要调试服务器上的代码的,作为一个年长的工程师,肯定不能用 log.Printf 来调试问题,所以我选择了delve这个工具,通过delve我可以像本地调试代码一样在Goland中调试Go代码,很是惬意。如果要说缺点的话,那就是在服务端启动delve的serve...
代码星球 ·2020-10-02

Linux下配置Golang开发环境

前几天无意间看到了微信推送的golang开发的消息,看到golang那么牛逼,突然心血来潮想学习一下go。工欲善其事必先利其器,想做go开发,必须先配置好go的开发环境(就像开发Java先安装配置jdk一样)。在网上找了半天,一直没有找到满意的教程(看来golang在国内还是不火)遂自己摸索,踩了不少坑,特来记录一下,...

Golang包管理工具之govendor的使用

golang工程的依赖包经常使用goget命令来获取,例如:gogetgithub.com/kardianos/govendor,会将依赖包下载到GOPATH的路径下。常用的依赖包管理工具有godep,govendor等,在Golang1.5之后,Go提供了 GO15VENDOREXPERIMENT ...

golang 使用kcp实例

简介kcp的具体概念与定义自行百度,特性可以浓缩为一句话,和tcp一样可靠,速度比tcp快,是一个用带宽换速度的新型协议。网上的示例代码很少,特此写一篇golang下的kcp实例。PS本文仅对ksp在golang下的基本使用进行示例,具体调优参数需要使用者去官网寻找适配。官方的示例代码太长太花了,特意简约地贴出最简单的...
代码星球 ·2020-09-24

golang中sync.RWMutex和sync.Mutex区别

golang中sync包实现了两种锁Mutex(互斥锁)和RWMutex(读写锁),其中RWMutex是基于Mutex实现的,只读锁的实现使用类似引用计数器的功能.typeMutex  func(m*Mutex)Lock()  func(m*Mutex)Unlock()typeR...

golang 日志模块(log)

log模块可以自定义log对象,也可以使用log默认对象的日志方法funcNew创建log对象funcNew(outio.Writer,prefixstring,flagint)*Loggerlogs:=log.New(os.Stdout,"lcoalLog:",0)设置获取日志属性funcFlags获取标识func(...
代码星球 ·2020-09-24

golang struct组合,转型问题请教

typeActioninterface{OnHurt2(otherAction)GetDamage()int}typeBasestruct{atk,hpint}func(this*Base)OnHurt(other*Base){this.hp-=other.atk}func(this*Base)OnHurt2(othe...

golang继承与接口

结构体Go语言的结构体(struct)和其他语言的类(class)有同等的地位,但Go语言放弃了包括继承在内的大量面向对象特性,只保留了组合(composition)这个最基础的特性。组合甚至不能算面向对象特性,因为在C语言这样的过程式编程语言中,也有结构体,也有组合。组合只是形成复合类型的基础。typeRectstr...
代码星球 ·2020-09-24

Golang sync.WaitGroup的用法

经常会看到以下了代码:12345678910111213packagemainimport("fmt""time")funcmain(){fori:=0;i<100;i++{gofmt.Println(i)}time.Sleep(time.Second)}主线程为了等待goroutine都运行完毕,不得不在程序的...
代码星球 ·2020-09-24

Golang的 signal

在实际项目中我们可能有下面的需求:1、修改了配置文件后,希望在不重启进程的情况下重新加载配置文件;2、当用Ctrl+C强制关闭应用后,做一些必要的处理;这时候就需要通过信号传递来进行处理了。golang中对信号的处理主要使用os/signal包中的两个方法:一个是notify方法用来监听收到的信号;一个是stop方法用...
代码星球 ·2020-09-24

golang channel 使用总结

不同于传统的多线程并发模型使用共享内存来实现线程间通信的方式,golang的哲学是通过channel进行协程(goroutine)之间的通信来实现数据共享:Donotcommunicatebysharingmemory;instead,sharememorybycommunicating.这种方式的优点是通过提供原子的...
代码星球 ·2020-09-24
首页上一页...678910...下一页尾页