内容简介:本系列文章会参照函数是实现一些功能的代码块,可以提高应用的模块性和复用率。题外话,React的组件化也是为了代码复用,组件可以看作一个函数,Props是外部传参,state是函数内部状态或者内部变量。
本系列文章会参照 C语言中文网 的《Go语言教程》来写自己的心得体会
函数是实现一些功能的代码块,可以提高应用的模块性和复用率。
题外话,React的组件化也是为了代码复用,组件可以看作一个函数,Props是外部传参,state是函数内部状态或者内部变量。
普通函数需要先声明才能调用。同一个包内,函数不能同名。支持多返回值
包(package)是 Go 源码的一种组织方式,一个包可以认为是一个文件夹,在后续章节中将会详细讲解包的概念。
Go 语言的函数声明以 func 标识,后面紧接着函数名、参数列表、返回参数列表及函数体 func foo( a int, b string ){ ... // 函数体 } 复制代码
参数列表中,如有多个参数变量,则以逗号分隔;如果相邻变量是同类型,则可以将类型省略
func add(a, b int) int { return a + b } // 函数可以有多个返回值 conn, err := connectToNetwork() 复制代码
闭包是引用了自由变量的函数,被引用的自由变量和函数一同存在,即使已经离开了自由变量的环境也不会被释放或者删除,在闭包中可以继续使用这个自由变量。
Go语言支持可变参数特性,函数声明和调用时没有固定数量的参数.
func 函数名(固定参数列表, v … T)(返回参数列表){ 函数体 } 复制代码
Go 语言的 defer 语句会将其后面跟随的语句进行延迟处理。在 defer 归属的函数即将返回时,将延迟处理的语句按 defer 的逆序进行执行,也就是说,先被 defer 的语句最后被执行,最后被 defer 的语句,最先被执行。压栈出栈的原因。
package main import ( "fmt" ) func main() { fmt.Println("defer begin") // 将defer放入延迟调用栈 defer fmt.Println(1) defer fmt.Println(2) // 最后一个放入, 位于栈顶, 最先调用 defer fmt.Println(3) fmt.Println("defer end") } 复制代码
Go语言函数处理思想
- 一个可能造成错误的函数,需要返回值中返回一个错误接口(error)。如果调用是成功的,错误接口将返回 nil,否则返回错误
- 在函数调用后需要检查错误,如果发生错误,进行必要的错误处理。
net.Dial() 是 Go 语言系统包 net 即中的一个函数,一般用于创建一个 Socket 连接。net.Dial 拥有两个返回值,即 Conn 和 error
func Dial(network, address string) (Conn, error) { var d Dialer return d.Dial(network, address) } 复制代码
手动触发宕机
Go 语言可以在程序中手动触发宕机,让程序崩溃,这样开发者可以及时地发现错误,同时减少可能的损失
package main func main() { panic("crash") } // 程序崩溃,输出内容如下 panic: crash goroutine 1 [running]: main.main() F:/src/tester/main.go:5 +0x6b 复制代码
Go语言提供宕机恢复功能,防止程序崩溃。Go 没有异常系统,其使用 panic 触发宕机类似于其他语言的抛出异常,那么 recover 的宕机恢复机制就对应 try/catch 机制
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 【每日笔记】【Go学习笔记】2019-01-04 Codis笔记
- 【每日笔记】【Go学习笔记】2019-01-02 Codis笔记
- 【每日笔记】【Go学习笔记】2019-01-07 Codis笔记
- Golang学习笔记-调度器学习
- Vue学习笔记(二)------axios学习
- 算法/NLP/深度学习/机器学习面试笔记
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Windows黑客编程技术详解
甘迪文 / 人民邮电出版社 / 2018-12 / 108
《Windows黑客编程技术详解》介绍的是黑客编程的基础技术,涉及用户层下的Windows编程和内核层下的Rootkit编程。本书分为用户篇和内核篇两部分,用户篇包括11章,配套49个示例程序源码;内核篇包括7章,配套28个示例程序源码。本书介绍的每个技术都有详细的实现原理,以及对应的示例代码(配套代码均支持32位和64位Windows 7、Windows 8.1及Windows 10系统),旨在......一起来看看 《Windows黑客编程技术详解》 这本书的介绍吧!