摘要: 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。 Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。 if else(分支结构) if条件判断基本写法 Go语言中if条件判断 阅读全文
posted @ 2021-10-14 10:39 羌 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 标识符与关键字 在了解数据类型之前,先了解一下go的标识符和关键字 标识符 在编程语言中标识符就是定义的具有某种意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符允许由字母数字和_(下划线)组成,并且只能以字母和_开头:abc, _, _123, a123。 关键字 关键字是指语言预先定义 阅读全文
posted @ 2021-10-13 14:53 羌 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 为什么要学 Go 性能优越感;Go 极其地快,其性能与 Java 或 C++相似。在使用中,Go 一般比 Python 要快 30 倍; 序列化/去序列化、排序和聚合中表现优异; 开发者效率较高;多种赋值、数据结构、指针、格式化以及内置的 HTTP 库等能使给开发者提供快速着手开发; 天然并发,Go 阅读全文
posted @ 2021-10-13 14:51 羌 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发。 并发与并行 并发:同一时间段内执行多个任务。 并行:同一时刻执行多个任务,有时间上的重叠。 进程、线程、协程 进程(Process),线程(Thread),协程(Coroutine,也叫轻量级线程) 进程:是一个程序在一个数据集中的 阅读全文
posted @ 2021-10-28 19:28 羌 阅读(273) 评论(0) 推荐(2) 编辑
摘要: 什么是反射 官方关于反射定义: Reflection in computing is the ability of a program to examine its own structure, particularly through types; it’s a form of metaprogr 阅读全文
posted @ 2021-10-27 13:17 羌 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 在实际工程项目中,总是通过程序的错误信息快速定位问题,但是又不希望错误处理代码写的冗余而又啰嗦。Go语言没有提供像Java、C#语言中的try...catch异常处理方式,而是通过函数返回值逐层往上抛。这种设计,鼓励在代码中显式的检查错误,而非忽略错误,好处就是避免漏掉本应处理的错误。但是带来一个弊 阅读全文
posted @ 2021-10-26 10:02 羌 阅读(575) 评论(2) 推荐(0) 编辑
摘要: 自定义类型 在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型, Go语言中可以使用type关键字来定义自定义类型。 type是Go语法里的重要而且常用的关键字,type绝不只是对应于C/C++中的typedef。搞清楚type的使用,就容易理解go语言中的核心概念str 阅读全文
posted @ 2021-10-25 10:04 羌 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 面向对象的三大特征: 封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式 继承:使得子类具有父类的属性和方法或者重新定义、追加属性和方法等 多态:不同对象中同种行为的不同实现方式 Go并不是一个纯面向对象的编程语言。在 Go 语言中可以使用结构体struct对属性进行封装,结构体就像是类的一种简 阅读全文
posted @ 2021-10-24 13:11 羌 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。 接口类型 在Go语言中接口(interface)是一种类型,一种抽象的类型。 interface是一组函数或方法的集合,是duck-type programming的一种体现。接口做的事情就像是定义 阅读全文
posted @ 2021-10-23 09:42 羌 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 方法和接收者 Go语言中的方法(Method)是一种作用于特定类型变量的函数。这种特定类型变量叫做接收者(Receiver)。接收者的概念就类似于其他语言中的this或者 self。 Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一 阅读全文
posted @ 2021-10-22 10:05 羌 阅读(131) 评论(0) 推荐(0) 编辑
摘要: Go语言中的基础数据类型可以表示一些事物的基本属性,但是要表达一个事物的全部或部分属性时,这时候再用单一的基本数据类型明显就无法满足需求了,Go语言提供了一种自定义数据类型,可以封装多个基本数据类型,这种数据类型叫结构体,英文名称struct。 也就是可以通过struct来定义自己的类型了。 Go语 阅读全文
posted @ 2021-10-21 10:20 羌 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 指针的概念 指针是存储另一个变量的内存地址的变量。 变量是一种使用方便的占位符,用于引用计算机内存地址。 一个指针变量可以指向任何一个值的内存地址。 在上面的图中,变量b的值为156,存储在内存地址0x1040a124。变量a持有b的地址,现在a被认为指向b。 区别于C/C++中的指针,Go语言中的 阅读全文
posted @ 2021-10-20 10:03 羌 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 在工程化的开发项目中,Go语言的源码复用是建立在包(package)基础之上的。 包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言提供了很多内置包,如fmt、os、io等。 包的定义 src 目录是以代码包的形式组织并保存 Go 源码文件的。每个代码包都和 src 目录下 阅读全文
posted @ 2021-10-19 10:43 羌 阅读(67) 评论(0) 推荐(0) 编辑
微信公众号:写bug记得加注释 个人博客:https://www.drunkery.cn