标签: go

29 篇文章

thumbnail
知名编程语言简史
一 知名编程语言简史 1、B语言与C语言 B语言之父:Ken Thompson(肯.汤普森) 1969年前后,Ken Thompson(肯.汤普森)在Dennis Ritchie丹尼斯.里奇(Dennis Ritchie)的支持下设计出来的一种通用的程序设计语言,现在使用者已经很少了。 C语言之父:Dennis Ritchie(丹尼斯·里奇) 19…
thumbnail
位运算
一 前言 ​ 位运算,一个极容易被低端码农忽视的地带,因为它略微需要用一丢丢智商,真的只有那么一丢丢,但高手与low手的差距往往就是长这么一丢丢,能达到的深度就截然不同了,今天egon就来给大家聊一聊位运算那些风骚且高级的操作,但要理解位运算,得从机器数与真值说起,请看大屏幕 二 真值、机器数(原码、反码、补码) ​ “真值”指的就是数本身,例如-…
国内外有哪些企业或项目使用Go语言
国内外有哪些企业或项目使用Go语言 Go发布之后,很多公司特别是云计算公司开始用Go重构他们的基础架构,很多都是直接采用Go进行了开发,最近热火朝天的Docker就是采用Go开发的。 使用 Go 语言开发的开源项目非常多。早期的 Go 语言开源项目只是通过 Go 语言与传统项目进行C语言库绑定实现,例如 Qt、Sqlite 等;后期的很多项目都使用…
thumbnail
浮点数的精度问题
浮点数的精度问题 一:浮点数储存结构 任何数据在内存中都是以二进制的形式存储的,浮点数也不例外,浮点数分为单精度与双精度 单精度浮点数float占4字节、32位 双精度浮点数double占8字节、64位。 遵循IEEE二进制算数标准;float和double的二进制存储结构都分成三部分::符号位+指数位+尾数位。 Sign/符号位 Exponent…
thumbnail
go语言特性
对比其他编程语言,Go有何突出的呢? 一:Go语言的语言特性 很久以前,有一个IT公司,这公司有个传统,允许员工拥有20%自由时间来开发实验性项目。在2007的某一天,公司的几个大牛,正在用c++开发一些比较繁琐但是核心的工作,主要包括庞大的分布式集群,大牛觉得很闹心,后来c++委员会来他们公司演讲,说c++将要添加大概35种新特性。这几个大牛的其…
thumbnail
Go语言内存对齐
Go语言内存对齐 一 内存访问粒度 内存空间是以字节为单位连续编址的。如果把内存单元比喻为小柜子,那么内单元的地址就相当于柜子的编号,如下所示 重点来了: 1、大多数小伙伴都会错误地认为:内存的小柜子是一个萝卜一个坑,每个小柜子都存放一个字节,但实际上,内存中存放的数据是一块一块存放的,一块内存包含了n个连续的小柜子,这一块内存包含的n个小柜子里可…
GO相关环境变量
GO相关环境变量 一 引入 ​ 除了PATH之外,还有一些Go专门的环境变量,例如GOROOT、GOPATH、GOBIN,随着Go版本的更迭,在新版本Go1.14.2中已经不需要手动设置这仨环境变量了,使用默认值即可,笔者介绍它们的目的是为了介绍一些Go相关概念,以便后续引出更高级的玩法,从而达到抛砖引玉的效果。 二 GOROOT 2.1 配置 /…
反射
https://www.jb51.net/article/90021.htm https://studygolang.com/articles/12348?fr=sidebar> https://studygolang.com/articles/10871 https://www.kancloud.cn/kancloud/the-way-to…
面向对象编程OOP
面向对象编程OOP 一 Go语言OOP 但面向对象的思想凌驾于任何具体的技术之上,虽说go并不是一个纯面向对象的编程语言,但仍可以实现OOP 1、结构体即”类” 2、方法即绑定方法 3、定义方法New()或NewT()代替构造函数 例 package main import ( "fmt" ) // 类 type Person …
thumbnail
接口类型
[TOC] 接口 一 Go语言中的接口介绍 Go语言中的接口是什么? * 1)是一种类型 * 2)是一组功能的集合,而不是一个功能 * 3)接口内只定义函数,但不涉及函数实现 * 4)这些功能是相关的,都是相关的功能,比如动物的接口里应该放动物相关的功能,但光合作用就不适宜放到IAnimal里面了 */ 为何要用接口? Go语言提倡面向接口编程 接…
复合类型之结构体
结构体struct 一 结构体介绍 ​ 什么是struct? ​ struct是go语言为我们提供的可以自定义的一种类型,该类型可以封装多个基本数据类型,可以用来存放一个事物的不同属性 ​ 为何要有struct? ​ 原因有二: ​ 1、Go语言内置的基础数据类型只能用来记录一个值,复合类型数组、切片、map等也虽然能存多个值,但多个值都必须是同一…
thumbnail
指针
指针 一 指针介绍 1.1 什么是指针 ​ 我们将内存中字节单元的编号称为:地址(Address) ​ 如果把内存单元比喻为小柜子,那么内单元的地址就相当于柜子的编号,如下所示 ​ 地址(Address)是用来帮我们找到存储在内存中的数据的,每个地址都指向一块存储空间,可以说“指向”二字很好地表达出了地址的精髓,为了能够更好地反映出地址的精髓,在高…
thumbnail
GO代码组织形式与结构
GO代码组织形式与结构 一 包介绍 ​ 我们用go语言开发的程序文件称之为源码文件(源码文件必须以.go结尾)。很明显将程序所有的代码都放入一个源码文件是不合理的,需要分文件管理相关代码,但是随着程序文件的增多,也必须有一种将文件加以组织管理的方式/形式,于是Go引入了”包“的概念。 ​ 包是go语言提供的一种虚拟的概念,包声明一致的多个源码文件在…
函数
函数 ​ 函数就是盛放一组代码块的”容器”,该代码块实现某个特定功能,被组织到函数内后可以重复调用 ​ Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民”。 一 函数的使用 1.1 定义 语法 func 函数名(参数)(返回值){ 函数体 } 解释: 1、函数名:命名规范同变量名,同一个包内不能重复 2、参数:由参数名和类型组…
字典map
字典Map 一 Map类型介绍与定义及初始化 ​ Map类型又可以称之为字典类型,是一种无需的基于key:value的数据结构 ​ 定义语法如下 map[KeyType]ValueType //1、KeyType:表示键的类型, //2、ValueType:表示键对应的值的类型 //3、map中所有的Key都必须是相同的类型,所有的value也必须…
切片
切片Slice 一 切片介绍 ​ 切片(Slice)顾名思义就是“把东西拿过来切一刀,得到一片,哈哈哈,话糙理不糙,只是注意一下此处的切一刀并不是切走了哈”。 ​ 我们可以对数组、切片、指向数组或切片的指针、字符串进行切片操作,得到的是一个切片Slice或子字符串。 ​ 简单切片操作:s[i:j] //0、其中s可以是数组、切片、指向数组或切片的指…
数组
[TOC] 数组Array 一 数组介绍 数组是一组同一类型数据的集合,也就是说数组内的数据/元素的类型必须相同。此外,数组还有一些其他特点,如下所示 1、一个数组包含的元素个数被称为数组的长度(可以用内置函数len(数组)来统计数组长度),数组的长度不可改变,而数组内的元素是可以改变的 2、数组是采用索引对应元素,可以通过索引访问/修改数组内的元…
thumbnail
复合数据类型介绍
复合数据类型介绍 一 什么是复合数据类型 ​ 基本数据类型是Go语言世界中的原子,以不同的方式组合基本数据类型得到的就是复合数据类型。复合类型是通过组合基础类型,来表达更加复杂的数据结构,即使用其他类型定义的类型,因而复合类型又称之为派生类型。本章主要介绍:指针、数组array、切片slice、字典map、结构体。 ​ 数据类型分为值类型与引用类型…
流程控制
流程控制 ​ 流程控制是编程语言中用来控制程逻辑的走向和执行次序的语法/机制,大致分为三种 1、顺序结构:从上向下,逐行执行 2、选择结构:满足条件,某段代码才会执行1次,总共0-1次,例如分支语句:if,switch,select 3、循环结构:满足条件,某段代码会被重复的执行多次,总共0-N次,例如循环语句:for Go语言中最常用的流程控制有…
thumbnail
变量
变量 一 变量介绍 ​ 程序的运行本质就是一系列状态的变化,比如:在游戏程序的运行过程中,一个角色的等级由0级升级到10级、金钱由10增长到了1000等。 ​ 所以程序的开发语言中必须有一种机制/语法能够控制计算机记录下事物状态,并且该状态是可以发生变化的,这就是变量。 ​ 变量是对“量”与“变”行为的抽象总结, “量”指的是记录下状态,“变”指的…
常量
常量 一 常量介绍 ​ 变量指的是值可以被改的量,常量指的则是值不可以被改变的量,在Go语言中,常量的值在编译期间就已经确定好了,且在程序运行过程中不可改变。 ​ 常量的声明语句如下,定义了常量的名字,和变量的声明语法类似 const 名字 类型 = 初始化表达式 // 例如 const x int = 10 x = 111 // 报错:canno…
格式化输入输出
格式化输入输出 fmt包实现了类似C语言printf和scanf的格式化I/O,对应函数为:Printf和Scanf。 详见:https://golang.google.cn/pkg/fmt/ 一 输出 1.1 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式。 Printf("%v", people) {egon}…
基本数据类型
基本数据类型 一 数据类型的由来 ​ 数据是程序的核心,所有的程序都是围绕数据的操作展开的。 ​ 站在程序员的角度,程序中的数据是用来控制计算机硬件记录下并且表达出事物状态的,记录越方便、表达越清晰,程序员的开发将会越方便。 ​ 站在计算机底层硬件的角度去看待数据,数据当然全都是由bit位组成的。为了能够记录下多种状态,数据不是由单个bit位而是由…
运算符
运算符介绍 运算符用于在程序运行时执行数学或逻辑运算,Go 语言内置的运算符有: 一元运算符 +一元加法 -负数 二元运算符 算术运算符 位运算符 逻辑运算符 比较运算符 Go语言中所有的二元运算符共有五种优先级,如下所示,它们按照优先级递减的顺序的排列: 优先级 运算符 5 * / % << >> & &^…
第一章:第一个GO程序
第一个Go程序 一 hello world ​ 作为程序员的仪式感,第一个程序当然要从打印”Hello,World“开始,这个例子首次出现于1978年出版的C语言圣经《The C Programming Language》。关于"Hello, World."还有一个很美好的故事,那就是所有的程序员期待着计算机有一天能拥有真正的智…
thumbnail
第二章:GO语言IDE工具
IDE工具之goland 一 下载与安装goland Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,推荐使用gland。 下载地址:https://www.jetbrains.com/go/download 按照提示步骤完成安装即可 更多其他go开发工具见:https://github.com/a…
thumbnail
GO开发环境部署
GO开发环境部署 一 安装环境 1.1 安装包下载 Go 语言支持以下系统: Linux FreeBSD Mac OS X(也称为 Darwin) Windows 安装包的官网下载地址为:https://golang.org/dl/ 如果打不开可以使用Golang的国内镜像站地址:https://golang.google.cn/dl/ 大多数人的…
thumbnail
Go语言介绍
GO语言介绍 一 Go语言的诞生 已经有那么多编程语言了,为何还要再造一门Go??? 一方面:从大的维度分析 1、近几十年来,计算机硬件飞速发展,硬件越来越廉价,并且硬件性能/抗并发能力不断攀升,超线程技术、CPU 多核化的发展和普及为并行计算提供了技术支持与编程需求,但是反观编程语言领域却没有什么大的动作,很早就诞生了C/C++在计算机领域发展的…

You cannot copy content of this page