函数式编程篇

变量声明、初始化、赋值及作用域

变量是几乎所有编程语言中最基本的组成元素。从本质上说,变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。 由于 Go...

常量和枚举

在 Go 语言中,常量是指编译期间就已知且不可改变的值,常量只可以是数值类型(包括整型、 浮点型和复数类型)、布尔类型、字符串类型等标量类型。和 PHP 一样,在 Go 语言中,我们可以通过 c...

数据类型篇(一):概述及布尔类型

支持的数据类型 Go 语言内置对以下这些基本数据类型的支持: 布尔类型:bool 整型:int8、byte、int16、int、uint、uintptr 等 浮点类型:float32、flo...

数据类型篇(二):整型及运算符

整型 整型是所有编程语言里最基础的数据类型,Go 语言默认支持如下这些整型类型: 类型 长度(单位:字节) 说明 值范围 默认值 int8 1 带符号8位整型 -128~127 0 ...

数据类型篇(三):浮点型与复数类型

浮点型 浮点型也叫浮点数,用于表示包含小数点的数据,比如 3.14、1.00 都是浮点型数据。 浮点数的表示 和 PHP 一样,Go 语言中的浮点数采用IEEE-754 标准的表达方式,定义了...

数据类型篇(四):字符串和字符类型

字符串 基本使用 在 Go 语言中,字符串是一种基本类型,默认是通过 UTF-8 编码的字符序列,当字符为 ASCII 码时则占用 1 个字节,其它字符根据需要占用 2-4 个字节,比如中文编码...

数据类型篇(五):基本数据类型之间的转化

通过前面几篇教程,我们已经陆续介绍完了 Go 语言中的基本数据类型,分别是布尔类型、整型、浮点型、复数类型、字符串和字符类型,和 PHP 一样,Go 语言也支持这些基本数据类型之间的转化,但是不...

数据类型篇(六):数组及其使用

数组的声明和初始化 数组是所有语言编程中最常用的数据结构之一,Go 语言也不例外,与 PHP、JavaScript 等弱类型动态语言不同,在 Go 语言中,数组是固定长度的、同一类型的数据集合。...

数据类型篇(七):数组切片的创建和遍历

在前一篇教程里我们已经介绍过数组的一个特点:数组的长度在定义之后无法修改,数组长度是数组类型本身的一部分,是数组的一个内置常量,因此我们无法在数组上做动态的元素增删操作。显然这种数据结构无法完全...

数据类型篇(八):在数组切片中动态增删元素

动态增加元素 切片比数组更强大之处在于支持动态增加元素,甚至可以在容量不足的情况下自动扩容,关于容量我们在上篇教程中已经简单提及过,在切片类型中,元素个数和实际可分配的存储空间是两个不同的值,元...

数据类型篇(九):字典类型的声明、初始化和基本使用

字典定义 有 PHP 基础的同学都应该知道,PHP 数组包含索引数组和关联数组,PHP 中的索引数组即对应 Go 语言的数组和切片类型,PHP 中的关联数组即对应 Go 语言中的字典类型(map...

数据类型篇(十):字典类型的遍历与排序

遍历字典 我们可以像遍历数据那样对字段类型数据进行遍历: testMap := map[string]int{ "one": 1, "two": 2, "three": ...

数据类型篇(十一):指针的概念和基本使用

指针概述 我们知道,变量的本质对一块内存空间的命名,可以通过引用变量名来使用这块内存空间存储的值,而指针的含义则指向存储这些变量值的内存地址。和 PHP、Java 不同,Go 语言支持指针,如果...

流程控制篇(一):条件语句

流程控制主要用于设定计算执行的次序,建立程序的逻辑结构。Go 语言的流程控制和 PHP 类似,支持如下的几种流程控制语句: 条件语句:用于条件判断,对应的关键字有 if、else 和 else...

流程控制篇(二):分支语句

分支语句会根据传入条件的不同,选择不同的分支代码执行。Go 语言的分支语句和 PHP 类似,只是不需要在每个分支结构中显式通过 break 语句退出: switch var1 { cas...

流程控制篇(三):循环语句

基本使用 与其它编程语言不同的是,Go 语言中的循环语句只支持 for 关键字,而不支持 while 和 do-while 结构。关键字 for 的基本使用方法与 PHP 类似,只是循环条件不含...

流程控制篇(四):跳转语句

break 与 continue 语句 和 PHP 一样,Go 语言支持在循环语句中通过 break 语句跳出循环,通过 continue 语句进入下一个循环。 关于 break 的基本使用示例...

函数篇(一):函数的基本定义和调用

几乎所有编程语言都支持函数,编写函数的目的在于将复杂的问题分解为一系列简单的任务来处理,此外同一个函数还可以被多次复用,这一结构在面向过程的函数式编程中至关重要。同为类 C 语言,Go 语言的函...

函数篇(二):函数的传参和返回值

上篇教程我们介绍了 Go 语言中函数的基本定义和调用,其中也涉及到了函数的传参和返回值,只不过那里演示的是最简单的场景,今天我们就更复杂的传参和返回值进行介绍。 按值传参和引用传参 Go 语言默...

函数篇(三):变长参数

所谓变长参数指的是函数参数的数量不确定,可以按照需要传递任意数量的参数到指定函数,比如前面演示过的 fmt.Printf 函数的参数显然就是变长参数。 PHP 中的变长参数简介 PHP 函数也支...

函数篇(四):匿名函数与闭包

匿名函数 熟悉 Laravel 框架(一个 PHP Web 框架)的同学对匿名函数应该很熟悉,Laravel 框架中有着大量匿名函数的应用场景,比如路由定义、绑定实现到接口等: // 路由定义 ...

函数篇(五):系统内置函数

Go 语言提供了一些不需要导入任何包就可以直接使用的内置函数。我们把这些内置函数做一个简单的分类,如下表所示: 名称 说明 close 用于在管道通信中关闭一个管道 len、cap...

函数篇(六):递归函数与性能优化

递归函数的编写思路 很对编程语言都支持递归函数,所谓递归函数指的是在函数内部调用函数自身的函数,从数学解题思路来说,递归就是把一个大问题拆分成多个小问题,再各个击破,在实际开发过程中,某个问题满...

Search Results