加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Go编程语言的简单介绍

发布时间:2019-02-14 21:32:57 所属栏目:建站 来源:Julian Andres Klode
导读:副标题#e# (以下内容是我的硕士论文的摘录,几乎是整个 2.1 章节,向具有 CS 背景的人快速介绍 Go) Go 是一门用于并发编程的命令式编程语言,它主要由创造者 Google 进行开发,最初主要由 Robert Griesemer、Rob Pike 和 Ken Thompson 开发。这门语言的设

Go 提供语句 defer 允许函数退出时调用执行预定的函数。它可以用于进行资源释放操作,例如:

  1. func myFunc(someFile io.ReadCloser) {
  2. defer someFile.close()
  3. /* 文件相关操作 */
  4. }

当然,它允许使用匿名函数作为被调函数,而且编写被调函数时可以像平常一样使用任何变量。

错误处理

Go 没有提供异常类或者结构化的错误处理。然而,它通过第二个及后续的返回值来返回错误从而处理错误:

  1. func Read(p []byte) (n int, err error)
  2.  
  3. // 内建类型:
  4. type error interface {
  5. Error() string
  6. }

必须在代码中检查错误或者赋值给 _

  1. n0, _ := Read(Buffer) // 忽略错误
  2. n, err := Read(buffer)
  3. if err != nil {
  4. return err
  5. }

有两个函数可以快速跳出和恢复调用栈:panic()recover()。当 panic() 被调用时,调用栈开始弹出,同时每个 defer 函数都会正常运行。当一个 defer 函数调用 recover()时,调用栈停止弹出,同时返回函数 panic() 给出的值。如果我们让调用栈正常弹出而不是由于调用 panic() 函数,recover() 将只返回 nil。在下面的例子中,defer 函数将捕获 panic() 抛出的任何 error 类型的值并储存在错误返回值中。第三方库中有时会使用这个方法增强递归代码的可读性,如解析器,同时保持公有函数仍使用普通错误返回值。

  1. func Function() (err error) {
  2. defer func() {
  3. s := recover()
  4. switch s := s.(type) { // type switch
  5. case error:
  6. err = s // s has type error now
  7. default:
  8. panic(s)
  9. }
  10. }
  11. }

数组和切片

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!