10_错误处理及测试
发表于|更新于|Golang
|浏览量:
错误处理及测试
文章作者: xhj
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!
相关推荐
2024-11-09
6_Map
Map概念map 是引用类型,声明的方式一般如下: 123var map1 map[string]intcap := 20 // 容量 20map2 := make(map[string][]int, cap) k-v 操作 判断键值对是否存在 1234// 因为 Go 中的 key 不存在的情况下返回的 value 会是零值if _, ok := map1[key1];ok { // 存在} 删除一个键值对 123delete(map1, key1)// 如果 key 不存在也不会报错 相对于 Python 中的字典,Go 中对 Map 数据类型的操作显得更为友好。 遍历 Map123for idx, val := range map1 {}
2024-11-06
3_控制结构
控制结构switch 结构Go 中的 switch-case 结构和 C++ 中的选择结构并不相同。 12345678i := 1switch i { case 0: func1() case 1: func2() // ... default: funcd()} 而 C++ 代码停止 switch 操作需要手动 break。 1234567i = 1switch(i) { case 1: func1(); break; case 2: func2(); break; //... default:funcd();} Go 中将这种特性去除,如果确实需要在执行完 case 的情况下还要继续执行,可以在后面添加关键字 fallthrough。如 Go代码: 1234567891011121314151617181920k := 6switch k {case 4: fmt.Println("was <= 4") fallthroughcase 5...
2024-11-07
4_函数
函数函数介绍Go 中的函数重载是被禁止的,即不能通过不同的参数传递执行同名函数的不同功能。 Go 中没有泛型的概念,因此它不支持那种支持多种类型的函数,不过大部分情况可以使用 interface 跟反射来实现相似的功能。 传递变长参数如果某个函数的最后一个参数采用 …type 的形式,那么这个函数就可以用来处理一个变长的参数,这个长度可以是 0,这样的函数称为变参函数。 12345func SampleFunc(prefix string, who ...string)SampleFunc("Hello", "world1", "world2", "world3") defer 和追踪关键字 defer 允许在 函数执行完之前或 return 执行完之后 推迟执行某一段代码,类似于其它语言中的 finally 关键字。 当有多个 defer 行为被注册时,它们会逆序执行(类似于栈) Go 的内置函数 名称 说明 close 用于关闭管道通信 len 返回某个类型的长度或者数量(...
2024-11-05
2_基本结构和基本数据类型
基本结构和基本数据类型文件名 文件名 正误 app.go 正确 start-app.go 错误 start_app.go 错误 标识符Go 的标识符与 C 的要求类似,比如不能数字开头、不能使用关键字等。但 Go 可以使用任何 utf-8 字符来命名标识符,因此甚至可以使用中文。 关键字 基本结构 变量与常量 var const 包管理 package import 基本组件 函数 func return 自定义类型 interface struct type 引用类型 map range 流程控制 并发 go chan select 单任务流程控制 单分支控制 if else 多分支流程 switch case default fallthough 循环流程 for break continue goto 延时型流程控制 defer 函数main() 函数是每个可执行程序的入口,一般来说是第一个执行的入口函数(如果有 init() 函数会考虑先执行)。 函数的简单格式 123func funct...
2024-11-04
1_基础知识
基础知识本部分内容会囊括原书的 前言、Go 语言的起源发展和普及、安装与运行环境、编辑器、集成开发与其它工具 等内容,且会省略很多介绍性的内容。 Go RuntimeGo 编译器直接产生本地可执行的代码,但这些代码仍运行在 Go 的 runtime 当中。这个 runtime 类似于 JAVA 中用到的 JVM,负责管理包括内存分配、垃圾回收、栈处理、goroutine、channel、切片等。 类似的,Go 拥有类似与 JAVA 的垃圾回收机制(标记-清除回收器)用于自动的垃圾回收操作。但同样的,自动的垃圾回收机制并不能规避所有因为内存带来的问题,分配和回收内容都是消耗 CPU 资源的行为。 Go 的可执行文件大小要比对应的源码文件要大很多,说明 Go 的 runtime 嵌入到了每一个可执行文件中,相对于较大的文件大小,Go 编译出来的程序的部署要更加的方便,因为它只需要一个静态文件即可,而避免了像 Python 那样需要为不同版本的依赖甚至是软件额外处理的麻烦。 调试器fmt.Printf() 中的占位符说明 %+v 打印包括字段在内的实例完整信息 %#v 打印包括字段和限...
2024-11-12
9_读写数据
读写数据读取用户输入 类似于 C 中的 scanf() 函数, Go 中也有对应的针对标准输入输出函数。 12345678910111213141516171819202122232425package mainimport "fmt"var ( str string input = "11.22 / 12 / Python" format = "%f / %d / %s" f_num float32 i_num int s string)func main(){ // 从标准输出框中读取 fmt.Println("This is a test for a scanf function...") fmt.Scanln(&str) // Scanln 扫描来自标准输入的文本,空格分割 // fmt.Scanf("%s", str) // Scanf ...