#GoLang

Golang Vendor 包机制 及 注意事项

现在的Go版本是1.8,早在1.5时期,就有了Vendor包机制,详情可查看博文:“理解Go1.5vendor”。个人在使用 Glide管理Vendor包时(附:GolangVendor包管理工具glide使用教程),老编译不成功!后来猛地发现,原来是我对Vendor包机制理解不够深入导致的。Glide官方教...

Golang Vendor 包管理工具 glide 使用教程

Glide是Golang的Vendor包管理器,方便你管理vendor和verdor包。类似Java的 Maven,PHP的 Composer。Github:https://github.com/Masterminds/glide在线文档:http://glide.readthedocs.io/en...

Golang 特性简介

主要大概介绍go语言的历史和特性,简单的入门。很久以前,有一个IT公司,这公司有个传统,允许员工拥有20%自由时间来开发实验性项目。在2007的某一天,公司的几个大牛,正在用c++开发一些比较繁琐但是核心的工作,主要包括庞大的分布式集群,大牛觉得很闹心,后来c++委员会来他们公司演讲,说c++将要添加大概35种新特性。...
代码星球 ·2021-01-16

Golang---反射(reflect)

  摘要:今天我们来学习一下golang中的反射,这个是golang语言中的一大利器。  Go语言提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法,但是在编译时并不知道这些变量的具体类型,这称为反射机制--《Go语言圣经》需要使用反射的两个常见场景 1:有时...
代码星球 ·2021-01-09

golang--交替打印一个数组中的元素

  摘要:今天面试中,面试官让写两个goroutine交替打印一个数组中的元素,没有写出来,所以今天总结一下:packagemainimport("fmt""time")vararr=[5]int{1,2,3,4,5}funcg1(chchanbool){fori:=0;i<5;i++{ch&...

Golang---基本类型(interface)

  摘要:今天我们来学习Golang中的interface类型。 interface是一种类型typeAnimalinterface{SetName(string)GetName()string} 首先interface是一种类型,从它的定义中就可以看出用了type关键字,更准确...

Golang---基本类型(map)

 摘要:今天我们来学习Golang中的另外一种常用的数据类型,通过数据结构和源码来分析golang中的map是如何实现的。 bucketCntBits=3bucketCnt=1<<bucketCntBits//Maximumaverageloadofabucketthattriggers...
代码星球 ·2021-01-09

Golang---基本类型(slice)

 摘要:今天我们来学习Golang中的一个基本的数据结构slice,这个和C++中的vector容器思想基本一致,是一个容量可变的数组,那我们就来看下它和array的区别和联系,并对其中的典型操作给出分析。 //StringHeaderistheruntimerepresentationofastr...
代码星球 ·2021-01-09

Golang---基本类型(string)

  摘要:由于在实习过程中,做的项目都是基于Golang语言,所以在面试时,面试官也一定会理所当然的问Golang,所以在最近一段时间,主要学习这门语言的基础知识,以及常出的面试题。  字符串虽然在Go语言中是基本类型string,但是它实际上是由字符组成的数组,类似于C语言中的...

Golang---内存逃逸

 摘要:今天我们来了解一下Golang中的内存逃逸的概念。 引言:写过C/C++的同学都知道,调用著名的malloc和new函数可以在堆上分配一块内存,这块内存的使用和销毁的责任都在程序员。一不小心,就会发生内存泄露,搞得胆战心惊;切换到Golang后,基本不会担心内存泄露了。虽然也有new函数,但...
代码星球 ·2021-01-09

Golang---内存管理(内存分配)

 摘要:上次我们学习了Golang的goroutine调度策略,今天我们来学习Golang的内存管理策略。内存池 最直接的方式是调用malloc函数,指定要分配的大小,直接向操作系统申请。问题是这种方式会涉及到用户态和内核态的切换过程,那么频繁的切换就会带来很大的性能下降,我们要减少用户态和内核态的...

Golang---GMP调度策略

摘要:Go能很好的在用户空间支持并发模型,这也是Go如此火热的原因,那今天我们来学习Go的调度机制。G结构体 G是goroutine的缩写,相当于操作系统中的进程控制块,在这里就是goroutine的控制结构,是对goroutine的抽象,下面是G的结构(只列出了部分与调度有关的)://用于保存上下文的gob...
代码星球 ·2021-01-09

Golang---Channel

 摘要:今天我们来学习Go语言中channel,这是Go语言中非常重要的一个特性。 创建 在使用channel之前需要使用make来创建一个channel,如果在使用之前没有使用make,则会造成死锁(原因在后面死锁部分进行说明)ch:=make(chanint)//创建无缓冲的chann...
代码星球 ·2021-01-09

Golang---sort包

  Go语言标准库sort包中实现了几种基本的排序算法:插入排序、快速排序和堆排序,但是在使用sort包进行排序时无需具体考虑使用哪种排序方式,因为该方法会根据传入的排序的数据量来进行自动选择合适的排序算法。funcinsertionSort(dataInterface,a,bint)//插入排序funcheapSor...
代码星球 ·2021-01-09

Golang---序列化和反序列化

  我们的数据对象要在网络中传输或保存到文件,就需要对其编码和解码动作,目前存在很多编码格式:json,XML,Gob,GoogleProtocolBuffer等,Go语言当然也支持所有这些编码格式。  序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状...
代码星球 ·2021-01-09
首页上一页12345...下一页尾页