深度解密Go语言之Slice
Go语言的slice很好用,不过也有一些坑。slice是Go语言一个很重要的数据结构。网上已经有很多文章写过了,似乎没必要再写。但是每个人看问题的视角不同,写出来的东西自然也不一样。我这篇会从更底层的汇编语言去解读它。而且在我写这篇文章的过程中,发现绝大部分文章都存在一些问题,文章里会讲到,这里先不
深度解密Go语言之关于 interface 的10个问题
这次文章依然很长,基本上涵盖了interface的方方面面,有例子,有源码分析,有汇编分析,前前后后写了20多天。洋洋洒洒,长篇大论,依然有些东西没有涉及到,比如文章里没有写到反射,当然,后面会单独写一篇关于反射的文章,这是后话。还是希望看你在看完文章后能有所收获,有任何问题或意见建议,欢迎在文章后
深度解密Go语言之关于 interface 的10个问题
这次文章依然很长,基本上涵盖了interface的方方面面,有例子,有源码分析,有汇编分析,前前后后写了20多天。洋洋洒洒,长篇大论,依然有些东西没有涉及到,比如文章里没有写到反射,当然,后面会单独写一篇关于反射的文章,这是后话。还是希望看你在看完文章后能有所收获,有任何问题或意见建议,欢迎在文章后
深度解密Go语言之反射
更好的阅读效果:https://www.cnblogs.com/qcrao-2018/p/10822655.html反射和Interface息息相关,而Interface是我们上一篇文章的内容。在开始正文前,和大家说点题外话。上一篇关于Interface的文章发出后,获得了很多的关注和阅读。比如,登
深度解密Go语言之 map
更好的阅读体验:https://www.cnblogs.com/qcrao-2018/p/10903807.html这篇文章主要讲map的赋值、删除、查询、扩容的具体执行过程,仍然是从底层的角度展开。结合源码,看完本文一定会彻底明白map底层原理。我要说明的是,这里对map的基本用法涉及比较少,我相
深度解密Go语言之unsafe
更好的阅读效果:https://www.cnblogs.com/qcrao-2018/p/10964692.html上一篇文章我们详细分析了map的底层实现,如果你也跟着阅读了源码,那一定对unsafe.Pointer不陌生,map对key进行定位的时候,大量使用。unsafe.Pointer位于u
深度解密Go语言之context
Go语言的context包短小精悍,非常适合新手学习。不论是它的源码还是实际使用,都值得投入时间去学习。这篇文章依然想尝试全面、深入地去研究。文章相比往期而言,整体不长,希望你看完可以有所收获!什么是contextGo1.7标准库引入context,中文译作“上下文”,准确说它是goroutine的
深度解密Go语言之channel
大家好!“深度解密Go语言”系列好久未见,我们今天讲channel,预祝阅读愉快!在开始正文之前,我们先说些题外话。上一篇关于Go语言的文章讲Go程序的整个编码、编译、运行、退出的全过程。文章发出后,反响强烈,在各大平台的阅读量都不错。例如博客园登上了48小时阅读排行榜,并且受到了编辑推荐,占据首页
深度解密Go语言之 scheduler
好久不见,你还好吗?距离上一篇文章已经过去了一个多月了,迟迟未更新文章,我也很着急啊。跟大家汇报一下,这段时间我在看proc.go的源码,其实就是调度器的源码。代码有几千行之多,不像以往的map,channel等等。想把这些代码都看明白,是一个庞大的工程。到今天为止,我也不敢说我都看明白了。要深挖下
关于Go语言、Docker,我们聊聊新技术
出处:https://coolshell.cn/articles/18190.html上个月,作为Go语言的三位创始人之一,Unix老牌黑客罗勃·派克(RobPike)在新文章“Go:Tenyearsandclimbing”中,回顾了一下Go语言的发展过程。其中提到,Go语言这十年的迅猛发展大到连他
Go语言之实现一个简单的单链表
1.指针我大学里第一门接触的编程课程是C语言,用了谭浩强的《C程序设计》第三版,其实用什么书都无所谓,反正我也没有学会C。没有学会C,主要原因是C语言有一种叫做指针的东西,这种东西及其强大,可以直接操作内存。在学习Java之后,深入一点就需要了解到堆内存和栈内存的关系,其实也无非就是Java把指针帮
Go语言之初识切片和数组
Go语言之初识切片和数组1.数组学Go语言之前我已经多年没有看过数组了,唯一和数组打交道也是用Java的ArrayList,虽然底层是用数组实现的,但是全部的接口都是List的。数组一度被我认为是一种落后的数据结构了,在我用Python写数据库小工具的时候也是喜欢用list的,我甚至不知道Pytho
Go语言之初识Goroutine
1.Go的并发机制面对前来面试Java程序员的求职者的时候我一般都会问问并发编程,毕竟并发编程总是属于Java编程的高级部分。其实Java的并发编程已经被设计的很简单了,不过要想掌握并发编程也并不是一件很轻松的事情。作为一个DBA,面对高并发的场景算是司空见惯的了,没有并发能力的数据库(对,我说的就
Go语言学习之初识
1.第一个程序作为一个DBA,我平时用的比较多的语言是Java和Python,Java用来写后端存储层代码,Python用来写一些小工具辅助工作。我是首先学会了Java,因此Python对我来说有几点难以忍受的问题:弱类型语言,很多时候我不知道一个函数到底返回了什么,不看源码不知道;依赖不像Java
如何学习GO语言
1.需要把其基础知识看一两遍,包括语法,要素做工程师都至少了掌握了一门编程语言的,有几年经验的怎么也会掌握2门以上的开发语言,并且是至少有一门语言是自己比较熟悉的。这是因为对编程语言的模式套路都有比较深入的了结,所以在学习一门新的语言的时候肯定会比较轻松。但是还是需要把一门语言的基本要素掌握的。可以
Go 语言汇编快速入门
在Go的源码中包含大量汇编语句,最优秀的示例代码位于math/big,runtime和crypto这些库中,但是从这里入门的话实在太过于痛苦,这些示例都是着力于系统操作和性能的运行代码。对于没有经验的Go语言爱好者来说,这样会使通过库代码的学习过程遇到很大困难。这也是撰写本文的原因所在。GoASM(
从零开始: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语言基本语法”即可