从零开始:Go语言学习之路(03)—— Go语言开发工具及以太坊源码编译
1.LiteIDE下载安装LiteIDE是一款开源、跨平台的轻量级Go语言集成开发环境(IDE)。支持Windows以及Linux操作系统,据说是专门为go语言开发的一款编译器下载地址:http://sourceforge.net/projects/liteide/files/找到最新版本下载后解压
从零开始:Go语言学习之路(02)——Go语言基础知识注意点
仅列出与C/C++不同之处或需注意之处,如需更详尽基础的说明,建议参考Go语言基础语法|菜鸟教程在Go程序中,一行代表一个语句结束。每个语句不需要像C家族中的其它语言一样以分号;结尾,因为这些工作都将由Go编译器自动完成。如果将多个语句写在同一行,它们则必须使用;人为区分(不鼓励这种做法)。声明变量
从零开始:Go语言学习之路(01)——WIN10下环境搭建
个人简况与背景介绍数学系毕业,凭借着对计算机的爱好,做了一段时间伪C++程序员,实际只会写一点IFELSE语句,后转为项目经理,更是把本就不多的一点编程知识忘得差不多了。但内心一直有着成为一名真正的软件工程师的梦想,借着最近区块链的东风,决心从零开始研究一下以太坊的源码,而以太坊的源码有C++和Go
golang学习笔记之-Go语言基本语法
肯定不少猿问,为啥要学习Go语言,答案很简单,市场上Go语言工程师需求量远大于供应量,一句话,学会Go语言能找到好工作~O(∩_∩)O哈哈~其实只要自身本来强,都可以找到心仪的工作的废话不多说,开始我的表演~如果各位童鞋想要获得下面的源码,请搜索gzh:隔壁王小猿,关注后回复“Go语言基本语法”即可
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的