Go 语言函数式编程系列教程(十二) —— 数据类型篇:字典类型的遍历与排序

遍历字典 我们可以像遍历数据那样对字段类型数据进行遍历: testMap := map[string]int{ "one": 1, "two": 2, "three": 3, } for key, value := range testMap { fmt.Println(key, value) } 这种遍历模式和我们在 PHP 中通过 foreach 对...

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

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

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

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

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

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

[ PHP 内核与扩展开发系列] Array 与 HashTable:操作 HashTable 的 API

Zend 把与 HashTable 有关的 API 分成了好几类以便于我们查找,这些 API 的返回值大多都是常量SUCCESS 或者 FAILURE。 初始化 HashTable 下面在介绍函数原型的时候都使用了 ht,但是我们在编写扩展的时候,一定不要使用这个名称,因为一些 PHP 宏展开后会声明这个名称的变量,进而引发命名冲突。 创建并初始化一个 HashTable 非常...

PHP 设计模式系列 —— 迭代器模式(Iterator)

1、模式定义 迭代器模式(Iterator),又叫做游标(Cursor)模式。提供一种方法访问一个容器(Container)对象中各个元素,而又不需暴露该对象的内部细节。 当你需要访问一个聚合对象,而且不管这些对象是什么都需要遍历的时候,就应该考虑使用迭代器模式。另外,当需要对聚集有多种方式遍历时,可以考虑去使用迭代器模式。迭代器模式为遍历不同的聚集结构提供如开始、下一个、是否结...