在学习并发编程之前,我们先来了解一下一些相关的术语:进程、线程、并行、并发、同步、异步、阻塞、非阻塞、协程等概念。 19.1 进程/线程 进程是计算机中的程序...

在学习并发编程之前,我们先来了解一下一些相关的术语:进程、线程、并行、并发、同步、异步、阻塞、非阻塞、协程等概念。 19.1 进程/线程 进程是计算机中的程序...
18.日志 18.1 自带log包 在日常项目,在出现问题之后需要排查,一种比较主要的排查方式是通过日志。所以在代码的关键地方,需要打印相应的日志。在Go语言中log...
17.时间处理 日期和时间是日常编程常用的功能之一。如果没有日期和时间,会导致很多功能无法实现,例如日志记录、定时任务、时间延迟等。Go标准库提供了操作日期和时间的方...
1.问题引入 假设我们有这样一个动物类,示例代码如下所示: 现在有这样一个需求,根据传入的动物名称,调用不同的类进行初始化,我们可以有以下几种方式来处理。 1...
16.目录与文件 任何编程语言在运行时都依赖于操作系统,所以程序在运行时会对系统文件、目录等执行一些相应操作,例如文件读写、执行系统命令、创建新的目录等。在Go语言中...
15.1 模块化 用任何语言开发,如果软件规模扩大,会编写大量的函数、结构体、接口等。而这些代码不可能全部写在同一个文件中,因此就会产生大量的文件。如果这些文件是杂乱...
Go语言自带有一套完整的命令行操作,可以在终端中执行go来进行查看,如下所示: 这些命令对于我们在日常编写代码时非常有用,来看看一些常用的命令 14.1 go...
本节主要来学习Go语言中存在一些独有特性 13.1 值类型/引用类型 Go语言中针对不同的数据类型可以分为值类型和引用类型变量,两者描述如下所示: 值类型变量...
Go语言在v1.18版本添加。其中泛即通用的意思。 12.1 泛型函数 如果没有泛型,同一种类型需要使用重载功能,但Go又不支持重载功能。如果写一个简单的加法...
11.异常处理 在大部分的编程语言都支持异常处理机制,例如比较常见的try...catch...finally。但Go语言的设计者认为其他语言的异常处理太过消耗资源,...
1.硬盘I/O测试类型 在日常测试中,硬盘I/O测试类型主要有以下几种类型 随机读、随机写、随机读写 顺序读、顺序写、顺序读写 2.FIO介绍 FIL是Li...
1.概述 在日常写代码的过程中,经常能在很多地方看到__init__.py文件,似乎感觉没有什么用,但有时候却又不得不存在这个文件,而文件里面的内容通常又是空,那这个...
在学习接口时,已经接触了一些面向对象的概念,在这个章节中,我们来重点学习一下面向对象的相关概念。 面向对象程序设计(OOP:Object-oriented p...
9.接口 Go语言提供了一种称为接口(interface)的数据类型,用于表示一组行为规范,即定义一组未实现的函数声明。谁调用接口谁负责参照接口的方法负责实现它们。 ...
7. 函数 7.1 函数定义 在Go语言中,函数是若干语句组成的语句块、函数名称、参数列表、返回值构成,是组织代码的最单元。使用函数的主要作用如下所示: 结构化编程是...
8.结构体 Go语言的结构体有点像面向对象编程语言中的"类",但也不完全是。 面向对象是一种对现实世界理解和抽象的一种方法,通过抽象把相关的数据和方法组织为一个整体来...
5.指针 5.1 指针概念 指针是一个指向内存地址的变量。示意图如下所示: 在定义变量的时候,计算机会为变量自动分配内存地址,指针则是用来存储这些变量的内存地...
6. 容器类型 6.1 数组 数组是一个固定长度的特定相同类型元素组成的序列。其元素个数可以为>=0个。 在Go语言中,由于数组长度是固定,且缺乏一定的灵活性,在G...
4.流程控制 4.1 if-else 语句 条件判断是由if语句实现,根据条件的结果true和false来执行相应的代码。其基本语法格式如下所示: 基本 if 语句 ...