golang学习笔记之--Go语言内建容器
话接上文隔壁王小猿:Go语言基本语法zhuanlan.zhihu.com今天继续记录学习笔记,今天的笔记主题是Go语言内建容器如果各位童鞋想要获得下面的源码,请搜索gzh:隔壁王小猿,关注后回复“Go语言基本语法”即可获得数组数组定义vararr1[5]intarr2:=[3]int{1,3,5}
2019-11-01 Go 语言学习(一)
2019-11-01Go语言学习(一)go语言结构包声明引入包函数变量语句&表达式注释go语言变量packagemainimport"fmt"funcmain(){varastring="xql"fmt.Println(a)varb,cint=1,2fmt.Println(b,c)//声明一
go语言学习二- 数组、切片、映射
数组数组的内存布局是连续的。复制指针数组,智慧复制指针的值,而不会复制指针所指向的值函数之间传递变量总是以值的方式传递的,因此函数兼传递数组是一个开销很大的操作。可以通过传递指向数组的指针来进行数组的传递切片切片是围绕动态数组的概念构建的,可以按需自动增长和缩小切片底层内存在连续块中分配,因此能获得
go语言学习3--并发模式
并发模式程序可以在分配的时间内完成工作,正常终止程序没有及时完成工作,“自杀”接受到操作系统发送的中断事件,程序立刻尝试清理状态并终止工作。使用通道来监视程序的执行时间,如果程序运行时间太长,可以终止程序程序没有及时完成工作,“自杀”使用通道监视操作系统中断事件(os.signal),打断程序运行p
go语言学习4--并发
并发和并行golang里的并发指的是让某个函数独立于其他函数执行的能力(goroutine运行时是相互独立的)。并行是让多个不同的代码片段同时在不同的物理处理器上执行。并行是同时做很多事情,并发是同时管理很多事情。goroutinewaitgroupwaitgroup.add(int)需要运行的go
go语言学习--系统类型
自定义类型typexxxstruce{namestringageint}自定义变量声明varxxuser//声明并初始化为零值xx:=user{//声明并初始化所有字段name:"Bob",age:10,}字段名与值用“:”分隔,不同字段使用“,”分隔,且需要“,”结束,对字段顺序没有要求xx:=u
go语言学习-通道
通道除了原子函数和互斥锁外,通道也能保证对共享资源的安全访问以及消除竞争状态,通道通过发送和接收需要共享的资源,在goroutine之间做到资源同步。声明通道时,需要指定将要被共享的数据的类型可以通过通道共享内置类型、命名类型、结构类型和引用类型的值或者指针通道需要通过内置函数make()来创建通道
go语言学习-简介
最近在学go语言,共勉。程序员的晋级之路就是不断学习go语言的编译器速度非常快。go语言简化了解决依赖的算法-->只关注被引用的库go语言内置并发机制,不用被迫使用特定的线程库,能使用更多的资源。go语言自带垃圾回收器,不需要用户自己管理内存。goroutine很像线程,但占用的内存远少于线程
go语言的垃圾回收(GC)概述
垃圾回收是高级语言的一个进步,其算法目前有几种经典的算法,说go的GC之前先说一下所有的GC的算法:引用计算法:每一个对象都有一个计数器,当这个对象被引用一次时,计数器加一,减少一次引用时,计数器减一,这样当对象的计数器为0时,我们就可以进行回收了。PHP、Object等在使用。优点:回收快,算法简
go语言网络编程socket sever的实现
首先说一下socket,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket(百度百科)。图片来源于网络其本质就是就是编程接口(API),对TCP、UDP的封装。使用时我们可以指定使用的协议,今天主要使用TCP,目前我们大多数使用的还是TCP,虽然速度没有UDP快
go语言网络编程token bucket算法简单实现
buckettoken令牌桶算法是网络流量整形(TrafficShaping)和速率限制(RateLimiting)中最常使用的一种算法。图片来源于网络首先我们有一个bucket,里面存放了n个token,每次当有一个网络请求时,我们发一个token,当这个请求结束时,我们再将其token收回放入b
go语言网络编程token bucket算法简单实现
buckettoken令牌桶算法是网络流量整形(TrafficShaping)和速率限制(RateLimiting)中最常使用的一种算法。图片来源于网络首先我们有一个bucket,里面存放了n个token,每次当有一个网络请求时,我们发一个token,当这个请求结束时,我们再将其token收回放入b
go语言网络编程之session的实现
网络编程中cookie和session是必不可少的,今天就简单说一下go语言对session的实现。图片来源于网络cookie,简而言之就是在本地计算机保存一些用户操作的历史信息(当然包括登录信息),并在用户再次访问该站点时浏览器通过HTTP协议将本地cookie内容发送给服务器,从而完成验证,或继
go语言的interface为什么好用?
RobPike曾说:如果只能选择一个Go语言的特性移植到其他语言中,他会选择接口。看来,go的接口的设计还是一个比较突破的设计。那么他为什么这么说呢?目前市场上大多数编程语言的接口都是侵入式的,也就是使用接口时要说明,我实现了某某接口。比如java,想要实现一个接口,就需要使用implements关
go语言并发之MPG模型
请记住go并发的真理:Donotcommunicatebysharingmemory;instead,sharememorybycommunicating.不要以共享内存的方式来通信,相反,要通过通信来共享内存。go语言天生的并发大家都知道,可是go是如何实现轻松的构造上万的协程呢?今天我们就说一下
深度解密Go语言之context
Go语言的context包短小精悍,非常适合新手学习。不论是它的源码还是实际使用,都值得投入时间去学习。这篇文章依然想尝试全面、深入地去研究。文章相比往期而言,整体不长,希望你看完可以有所收获!什么是contextGo1.7标准库引入context,中文译作“上下文”,准确说它是goroutine的
从零开始学习 Go 语言的切片
这篇文章受到了我与同事讨论使用切片(slice)作为栈(stack)的一次聊天的启发。后来话题聊到了Go语言中的切片是如何工作的。我认为这些信息对别人也有用,所以就把它记录了下来。数组任何关于Go语言切片的讨论都要从另一个数据结构也就是数组(array)开始。Go的数组有两个特性:数组的长度是固定的
为什么越来越多的人偏爱go语言
如果你是一个开发者或者程序员,你大概应该听过Go语言或者Golang语言。当然,如果没有听过也没关系,看到这篇文章的同学,就说明你对Golang是关注的,只需要这一点就够了。今天来聊聊关于Golang的几个问题。越来越多人偏爱Go语言的真相可能你身边有程序员朋友,或者技术论坛里有人在谈论Go或者Go
go语言基础入门教程:Go语言logo和版本
一、Go的logo1.1Go语言的logoGo语言的logo就是很简洁的GO两个字母。1.2Go的吉祥物Go之所以叫Go,是想表达这门语言的运行速度、开发速度、学习速度(develop)都像gopher一样快。gopher是一种生活在加拿大的小动物,go的吉祥物就是这个小动物,它的中文名叫做囊地鼠,
三分钟学 Go 语言——开始
三分钟学Go语言系列教程第一章、前言学Go语言,我有一些小骄傲!为什么要学go语言?让你的Golang项目在IDE里跑起来我发现每次更新都得搞到这个点,还好没有到0点,吓出一身冷汗。我已经习惯了每天抽30分钟在github上打卡,连着更新完了整个go语言系列的学习过程,当然了我会一直维护这个项目到天