Go 语言函数式编程系列教程(十) —— 数据类型篇:在数组切片中动态增删元素

动态增加元素 切片比数组更强大之处在于支持动态增加元素,甚至可以在容量不足的情况下自动扩容,关于容量我们在上篇教程中已经简单提及过,在切片类型中,元素个数和实际可分配的存储空间是两个不同的值,元素的个数即切片的实际长度,而可分配的存储空间就是切片的容量。 一个切片的容量初始值根据创建方式的不同而不同: 对于基于数组和切片创建的切片而言,默认容量是从切片起始索引到对应底层数组的结尾索引;...

Go 语言函数式编程系列教程(九) —— 数据类型篇:数组切片的创建和遍历

在前一篇教程里我们已经介绍过数组的一个特点:数组的长度在定义之后无法修改,数组长度是数组类型本身的一部分,是数组的一个内置常量,因此我们无法在数组上做动态的元素增删操作。显然这种数据结构无法完全满足开发者的日常开发需求,尤其是从 PHP 转过来的开发人员(PHP 的数组非常灵活和强大),为此,Go 语言提供了数组切片(slice)来弥补数组的不足,数组切片一个最强大的功能就是支持对元素做...

Go 语言函数式编程系列教程(八) —— 数据类型篇:数组及其使用

数组的声明和初始化 数组是所有语言编程中最常用的数据结构之一,Go 语言也不例外,与 PHP、JavaScript 等弱类型动态语言不同,在 Go 语言中,数组是固定长度的、同一类型的数据集合。数组中包含的每个数据项被称为数组元素,一个数组包含的元素个数被称为数组的长度。 和 PHP 一样,Go 语言也通过 [] 来标识数组类型,以下是一些常见的数组声明方法: var a [8]byte...

基于 Swoole 构建高性能 Laravel 应用系列 —— 基于 Process 模块在 PHP 中实现多进程(二):进程间通信

在上篇教程中,学院君给大家介绍了通过 Swoole 提供的 Process 模块可以在 PHP 中实现多进程编程,并且实现了一个简单的多进程 TCP 服务器,但是在该示例中,主进程和子进程之间并没有数据交互,如果主进程需要得到子进程的反馈,或者子进程需要接收来自主进程的数据,那么就需要进程间通信了。 好在 Swoole 的 Process 模块可以很好的支持进程间通信,在基于 Proce...

Go 语言函数式编程系列教程(七) —— 数据类型篇:基本数据类型之间的转化

通过前面几篇教程,我们已经陆续介绍完了 Go 语言中的基本数据类型,分别是布尔类型、整型、浮点型、复数类型、字符串和字符类型,和 PHP 一样,Go 语言也支持这些基本数据类型之间的转化,但是不是像 PHP 那种可以自动转化,比如下面这些语句在 PHP 中都是合法的: $a = 1; $b = 1.1; $c = "学院君"; $d = true; $sum = $a + $b; /...

Go 语言函数式编程系列教程(六) —— 数据类型篇:字符串和字符类型

字符串 基本使用 在 Go 语言中,字符串是一种基本类型,默认是通过 UTF-8 编码的字符序列,当字符为 ASCII 码时则占用 1 个字节,其它字符根据需要占用 2-4 个字节,比如中文编码通常需要 3 个字节。 声明和初始化 字符串的声明和初始化非常简单,举例如下: var str string // 声明字符串变量 str = "Hello World" /...

Go 语言函数式编程系列教程(五) —— 数据类型篇:浮点型与复数类型

浮点型 浮点型也叫浮点数,用于表示包含小数点的数据,比如 3.14、1.00 都是浮点型数据。 浮点数的表示 和 PHP 一样,Go 语言中的浮点数采用IEEE-754 标准的表达方式,定义了两个类型:float32 和 float64,其中 float32 等价于 PHP 的 float 类型(单精度浮点数),可以精确到小数点后 7 位,float64 等价于 PHP 的 doubl...

Go 语言函数式编程系列教程(四) —— 数据类型篇:整型及运算符

整型 整型是所有编程语言里最基础的数据类型,Go 语言默认支持如下这些整型类型: 类型 长度(单位:字节) 说明 值范围 默认值 int8 1 带符号8位整型 -128~127 0 uint8 1 无符号8位整型,与 byte 类型等价 0~255 0 int16 2 带符号16位整型 -32768~32767 0 uint16 2 无符号16位整型 0~655...

基于 Swoole 构建高性能 Laravel 应用系列 —— 基于 Swoole 在 Laravel 中实现异步事件监听及处理

这一篇教程我们直接以 hhxsv5/laravel-s 扩展包为例,演示如何在 Laravel 项目中基于 Swoole 实现事件监听。 系统自带事件 首先我们来看一些扩展包自带的系统事件,这些系统事件又可以进一步划分为 Laravel 应用级别的系统事件以及 Swoole 底层 Worker 进程级别的系统事件。 注:在基于 Swoole HTTP 服务器的系统中,Worker 进程...

Go 语言函数式编程系列教程(三) —— 数据类型篇:概述及布尔类型

支持的数据类型 Go 语言内置对以下这些基本数据类型的支持: 布尔类型:bool 整型:int8、byte、int16、int、uint、uintptr 等 浮点类型:float32、float64 复数类型:complex64、complex128 字符串:string 字符类型:rune 错误类型:error 相较于 PHP,多出了字符类型(单个字符)、错误类型和复数类型,PH...