Go语言初探
Go语言基础 规则 大写字母开头变量为共有变量,小写字母开头为私有变量(函数类似) Iota iota枚举(默认开始值为0,const中每增加一行,值加1) slice 引用类型(类似于动态数组),相比于array,它没有长度限制 make & new make返回初始化后的值(非零),只能被用于slice、map、channel new返回指针,一般很少被使用 goto(无条件跳转,配合标签使用,无条件跳转至标签,可用于跳出循环) 由于可随意跳转,在庞大的系统中不利于debug,所以在coding中会通过结构化程序设计来规避这类问题,那么,在go语言设计者为何会继续沿用goto呢? 最开始提出goto有害论主要是当时的背景导致的,最开始使用的是非结构化的过程语言,例如BASIC和各种汇编语言 可读性强,可以书写出干净的退出功能(将所有退出方式统一编辑,利用goto进行跳转) 低级性能改进,goto语句执行的非常快 defer(延迟语句,函数执行到最后会按照逆序执行defer语句,可用于处理资源泄漏问题) 在函数中使用时,采用先进后出模式 panic & recover(go没有异常机制,使用这两个内置函数来代替异常机制) 调用panic中断函数执行(但defer语句仍然会被执行),退出执行 利用recover + defer可以捕获panic的输入值,并恢复正常执行