10_错误处理及测试
发表于|更新于|Golang
|浏览量:
错误处理及测试
文章作者: xhj
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!
相关推荐
2024-11-10
7_结构和方法
结构和方法结构体工厂Go 中不支持向面向对象语言的方法那样构造类的子方法,但是可以根据构造子工厂的方法来实现子方法。一般来说,工厂的名字用 New 开头。 1234567891011type File struct { fd int name string}func NewFile(fd int, name string) *File { if fd < 0 { return nil } return &File{fd, name}} 如果结构体的命名开头是小写的话,可以强制要求使用结构体工厂。 匿名字段和内嵌结构体结构体可以包含一个或多个 匿名(或内嵌)字段,即这些字段没有显式的名字,只有字段的类型是必须的,此时类型就是字段的名字。匿名字段本身可以是一个结构体类型,即 结构体可以包含内嵌结构体。 可以粗略地将这个和面向对象语言中的 继承 概念相比较,随后将会看到它被用来模拟类似继承的行为。Go 语言中的继承是通过内嵌或组...
2024-11-08
5_数组与切片
数组与切片新建一个数组的方法1234aList [5]intbList = []int{1, 2}cList = []int{1: 1, 4: 2}dList = new([]int) 新建一个切片的方法12345slice := make([]int, 10)var slice []int = make([]int, 10)// 以下两种方式的效果是一样的slice := new([100]int)[0:50]slice := make([]int, 50, 100) make 函数的定义如下: 12func make([]type, len, cap)// len 为初始化时占用长度, cap 为可选参数容量 new 函数和 make 函数的区别: 主要功能都是在堆上面分配内存给需要的结构体。 new 函数为每个新的类型 T 分配一片内存,初始化为 0 并且返回 *T 的内存地址,这种申请方式会返回一个 T 类型初始值为 0 的指针。 make 函数返回一个类型为 T 的初始值,它只适用于创建 slice, map 和 chan...
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 ...
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-03
12_网络
网络TCP 服务器服务端代码 客户端代码 HTTP 服务器服务端代码 访问并读取页面数据(网络请求)客户端代码