go语言
go语言学习笔记
班公湖里洗过脚
上马击狂胡,下马草军书
展开
-
Go语言20 错误处理
Go 错误处理Go 语言通过内置的错误接口提供了非常简单的错误处理机制。error类型是一个接口类型,这是它的定义:type error interface { Error() string}我们可以在编码中通过实现 error 接口类型来生成错误信息。函数通常在最后的返回值中返回错误信息。使用errors.New 可返回一个错误信息:func Sqrt(f float64) (float64, error) { if f < 0 { r原创 2020-09-02 10:03:51 · 1460 阅读 · 0 评论 -
Go语言19 接口
Go 语言接口Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。实例/* 定义接口 */type interface_name interface { method_name1 [return_type] method_name2 [return_type] method_name3 [return_type] ... method_namen [return_type]}/* 定原创 2020-09-02 10:03:08 · 92 阅读 · 0 评论 -
Go语言18 类型转换
Go 语言类型转换类型转换用于将一种数据类型的变量转换为另外一种类型的变量。Go 语言类型转换基本格式如下:type_name(expression)type_name 为类型,expression 为表达式。实例以下实例中将整型转化为浮点型,并计算结果,将结果赋值给浮点型变量://18typeCasting.gopackage mainimport "fmt"func main() { var sum int = 17 var count int = 5 va原创 2020-09-02 10:02:33 · 102 阅读 · 0 评论 -
Go语言17 递归函数
Go 语言递归函数递归,就是在运行的过程中调用自己。语法格式如下:func recursion() { recursion() /* 函数调用自身 */}func main() { recursion()}Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。阶乘以下实例通过 Go 语言的递归函数实例阶乘://17recursion.go原创 2020-09-02 10:01:59 · 113 阅读 · 0 评论 -
Go语言16 Map(集合)
Go 语言Map(集合)Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。定义 Map可以使用内建函数 make 也可以使用 map 关键字来定义 Map:/* 声明变量,默认 map 是 nil */var map_variable map[key_data原创 2020-09-01 08:58:03 · 463 阅读 · 0 评论 -
Go语言15 范围(Range)
Go 语言范围(Range)Go 语言中 range 关键字用于for循环中迭代数组(array)、切片(slice)、链表(channel)或集合(map)的元素。在数组和切片中它返回元素的索引值,在集合中返回 key-value 对的 key 值。实例//15range.gopackage mainimport "fmt"func main() { //这是我们使用range去求一个slice的和。使用数组跟这个很类似 nums := []int{2, 3, 4} sum原创 2020-09-01 08:57:28 · 286 阅读 · 0 评论 -
Go语言14 切片(Slice)
Go 语言切片(Slice)Go 语言切片是对数组的抽象。Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。定义切片你可以声明一个未指定大小的数组来定义切片:var identifier []type切片不需要说明长度。或使用make()函数来创建切片:var slice1 []type = make([]type, len原创 2020-09-01 08:55:10 · 104 阅读 · 0 评论 -
Go语言13 结构体
Go 语言结构体Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体表示一项记录,比如保存图书馆的书籍记录,每本书有以下属性:Title :标题 Author : 作者 Subject:学科 ID:书籍ID定义结构体结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体有中一个或多个成员。type 语句设定了结构体的名称。结构体的格式原创 2020-08-30 11:13:13 · 95 阅读 · 0 评论 -
Go语言12 指针
Go 语言指针Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务。接下来让我们来一步步学习 Go 语言指针。我们都知道,变量是一种使用方便的占位符,用于引用计算机内存地址。Go 语言的取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。以下实例演示了变量在内存中地址://12pointers.gopackage mainimport "fmt"func main() { var a int = 10 fmt.Printf("原创 2020-08-30 11:12:44 · 121 阅读 · 0 评论 -
Go语言11 数组
Go 语言数组Go 语言提供了数组类型的数据结构。数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。相对于去声明number0, number1, ..., and number99的变量,使用数组形式numbers[0], numbers[1] ..., numbers[99]更加方便且易于扩展。数组元素可以通过索引(位置)来读取(或者修改),索引从0开始,第一个元素索引为 0,第二个索引为 1,以此类推。声明数组原创 2020-08-30 11:09:28 · 103 阅读 · 0 评论 -
Go语言10 变量作用域
Go 语言变量作用域作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。Go 语言中变量可以在三个地方声明:函数内定义的变量称为局部变量 函数外定义的变量称为全局变量 函数定义中的变量称为形式参数接下来让我们具体了解局部变量、全局变量和形式参数。局部变量在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。以下实例中 main() 函数使用了局部变量 a, b, c://10scopeRules.gopack原创 2020-08-30 10:57:34 · 90 阅读 · 0 评论 -
Go语言09 函数
Go 语言函数函数是基本的代码块,用于执行一个任务。Go 语言最少有个 main() 函数。你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译器函数的名称,返回类型,和参数。Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果传入的是数字,则返回数组中包含的函数个数。函数定义Go 语言函数定义格式如下:func function_name(原创 2020-08-30 10:56:31 · 106 阅读 · 0 评论 -
Go语言08 循环语句
Go 语言循环语句在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。以下为大多编程语言循环程序的流程图:Go 语言提供了以下几种类型循环处理语句:循环类型 描述 for 循环 重复执行语句块 循环嵌套 在 for 循环中嵌套一个或多个 for 循环 Go 语言 for 循环for循环是一个循环控制结构,可以执行指定次数的循环。语法Go语言的For循环有3中形式,只有其中的一种使用分号。和 C 语...原创 2020-08-29 10:48:00 · 114 阅读 · 0 评论 -
Go语言07 条件语句
Go 语言条件语句条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。下图展示了程序语言中条件语句的结构:Go 语言提供了以下几种条件判断语句:语句 描述 if 语句 if 语句 由一个布尔表达式后紧跟一个或多个语句组成 if...else 语句 if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。 if 嵌套原创 2020-08-29 10:47:21 · 91 阅读 · 0 评论 -
Go语言06 运算符
Go 语言运算符运算符用于在程序运行时执行数学或逻辑运算。Go 语言内置的运算符有:算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符接下来让我们来详细看看各个运算符的介绍。算术运算符下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。运算符 描述 实例 + 相加 A + B 输出结果 30 - 相减 A - B 输出结果 -10 * 相乘 A * B 输出结果 200原创 2020-08-29 10:46:07 · 155 阅读 · 0 评论 -
Go语言05 常量
常量是一个简单值的标识符,在程序运行时,不会被修改的量。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。常量的定义格式:const identifier [type] = value你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。 显式类型定义: const b string = "abc" 隐式类型定义: const b = "abc"多个相同类型的声明可以简写为:const c_name1, c_name2 ...原创 2020-08-29 10:44:52 · 71 阅读 · 0 评论 -
Go语言04 变量
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。Go 语言变量名由字母、数字、下划线组成,其中首个字母不能为数字。(这点与C和C++一样)声明变量的一般形式是使用 var 关键字:var identifier type变量声明第一种,指定变量类型,声明后若不赋值,使用默认值。var v_name v_typev_name = value第二种,根据值自行判定变量类型。var v_name = value第三种,省略var, 注意原创 2020-08-29 10:42:01 · 97 阅读 · 0 评论 -
Go语言03 数据类型
Go 语言数据类型在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。Go 语言按类别有以下几种数据类型:序号 类型和描述 1 布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 2 数字类型 整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数原创 2020-08-29 10:34:47 · 88 阅读 · 0 评论 -
Go语言01 基础语法
前面介绍了Go语言的结构,这篇我们来介绍Go语言的基础语法原创 2020-08-27 23:10:45 · 300 阅读 · 0 评论 -
Go语言02 结构
Go是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,与C语言相近,很适合做服务器开发,看起来蛮不错了,所以学习下。Go 语言的基础组成有以下几个部分:包声明 引入包 函数 变量 语句 & 表达式 注释后面四点与C语言一样,前面两点相当于C语言的#include <>下面看一个最简单的示例//test.gopackage mainimport "fmt"func main(){ /*这是我的第一个go语言程序*/原创 2020-08-29 10:33:45 · 116 阅读 · 0 评论