Go语言递归函数
Go 语言递归函数 递归,就是在运行的过程中调用自己。 语法格式如下: func recursion() { recursion() /* 函数调用自身 */} func main() { recursion()} Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。 阶乘以下实例通过 Go 语言的递归函数实例阶乘:实例package main import “fmt” func Factorial(n uint64)(result uint64) { if (n > 0) { result = n * Factorial(n-1) return result } return 1} func main() { var i int = 15 fmt.Printf(“%d 的阶乘是 %d\n”, i,...
Go语言运算符
Go 语言运算符运算符用于在程序运行时执行数学或逻辑运算。Go 语言内置的运算符有: 算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符 接下来让我们来详细看看各个运算符的介绍。 算术运算符下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。 运算符描述实例+相加 A + B 输出结果 30-相减 A - B 输出结果 -10*相乘 A * B 输出结果 200/相除 B / A 输出结果 2%求余 B % A 输出结果 0++自增 A++ 输出结果 11–自减 A– 输出结果 9 以下实例演示了各个算术运算符的用法:实例package main import “fmt” func main() { var a int = 21 var b int = 10 var c int c = a + b fmt.Printf(“第一行 - c 的值为 %d\n”, c ) c = a - b fmt.Printf(“第二行 - c 的值为 %d\n”, c ) ...
Go语言范围(Range)
Go 语言范围(Range) Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对。 for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。格式如下:for key, value := range oldMap { newMap[key] = value} 以上代码中的 key 和 value 是可以省略。如果只想读取 key,格式如下:for key := range oldMap或者这样:for key, _ := range oldMap如果只想读取 value,格式如下:for _, value := range oldMap 实例数组和切片遍历简单的切片,2**%d 的结果为 2 对应的次方数:实例package main import “fmt” // 声明一个包含 2...
Go语言结构体
Go 语言结构体Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体表示一项记录,比如保存图书馆的书籍记录,每本书有以下属性: Title :标题Author : 作者Subject:学科ID:书籍ID 定义结构体结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体中有一个或多个成员。type 语句设定了结构体的名称。结构体的格式如下:type struct_variable_type struct { member definition member definition … member definition} 一旦定义了结构体类型,它就能用于变量的声明,语法格式如下: variable_name := structure_variable_type {value1, value2…valuen}或variable_name := structure_variable_type {...
Go语言结构
Go 语言结构 在我们开始学习 Go 编程语言的基础构建模块前,让我们先来了解 Go 语言最简单程序的结构。 Go Hello World 实例Go 语言的基础组成有以下几个部分: 包声明引入包函数变量语句 & 表达式注释 接下来让我们来看下简单的代码,该代码输出了”Hello World!”:实例package main import “fmt” func main() { /* 这是我的第一个简单的程序 */ fmt.Println(“Hello, World!”)} 让我们来看下以上程序的各个部分: 第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。下一行 import “fmt” 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。下一行 func main()...
Go语言类型转换
Go 语言类型转换 类型转换用于将一种数据类型的变量转换为另外一种类型的变量。Go 语言类型转换基本格式如下: type_name(expression) type_name 为类型,expression 为表达式。数值类型转换将整型转换为浮点型: var a int = 10var b float64 = float64(a) 以下实例中将整型转化为浮点型,并计算结果,将结果赋值给浮点型变量:实例package main import “fmt” func main() { var sum int = 17 var count int = 5 var mean float32 mean = float32(sum)/float32(count) fmt.Printf(“mean 的值为: %f\n”,mean)} 以上实例执行输出结果为: mean 的值为: 3.400000 字符串类型转换 将一个字符串转换成另一个类型,可以使用以下语法: var str string =...
Go语言环境安装
Go 语言环境安装Go 语言支持以下系统: LinuxFreeBSDMac OS X(也称为 Darwin)Windows 安装包下载地址为:https://go.dev/dl/。如果打不开可以使用这个地址:https://golang.google.cn/dl/。各个系统对应的包名: 操作系统包名Windowsgo1.4.windows-amd64.msiLinuxgo1.4.linux-amd64.tar.gzMacgo1.4.darwin-amd64-osx10.8.pkgFreeBSDgo1.4.freebsd-amd64.tar.gz UNIX/Linux/Mac OS X, 和 FreeBSD 安装以下介绍了在UNIX/Linux/Mac OS X, 和 FreeBSD系统下使用源码安装方法:1、下载二进制包:go1.4.linux-amd64.tar.gz。2、将下载的二进制包解压至 /usr/local目录。tar -C /usr/local -xzf...
Go语言条件语句
Go 语言条件语句 条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。下图展示了程序语言中条件语句的结构: Go 语言提供了以下几种条件判断语句: 语句描述if 语句if 语句 由一个布尔表达式后紧跟一个或多个语句组成。if…else 语句if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。 if 嵌套语句你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句。switch 语句switch 语句用于基于不同条件执行不同动作。select 语句select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。 注意:Go 没有三目运算符,所以不支持 ?: 形式的条件判断。
Go语言数组
Go 语言数组Go 语言提供了数组类型的数据结构。数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。相对于去声明 number0, number1, …, number99 的变量,使用数组形式 numbers[0], numbers[1] …, numbers[99] 更加方便且易于扩展。数组元素可以通过索引(位置)来读取(或者修改),索引从 0 开始,第一个元素索引为 0,第二个索引为 1,以此类推。 声明数组Go 语言数组声明需要指定元素类型及元素个数,语法格式如下:var arrayName [size]dataType 其中,arrayName 是数组的名称,size 是数组的大小,dataType 是数组中元素的数据类型。以下定义了数组 balance 长度为 10 类型为 float32:var balance [10]float32 初始化数组以下演示了数组初始化: 以下实例声明一个名为 numbers 的整数数组,其大小为...
Go语言数据类型
Go 语言数据类型 在 Go 编程语言中,数据类型用于声明函数和变量。 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。Go 语言按类别有以下几种数据类型: 序号类型和描述1布尔型布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。2数字类型整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。3字符串类型:字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。4派生类型:包括: (a) 指针类型(Pointer)(b) 数组类型 (c) 结构化类型(struct) (d) Channel 类型 (e) 函数类型 (f) 切片类型 (g) 接口类型(interface) (h) Map 类型 数字类型 Go 也有基于架构的类型,例如:int、uint 和...