Go 语言入门指南:基础语法和常用特性解析
1. 我们先来讲讲函数的变量的作用域以及go语言里面关于错误处理的实践练习和总结,首先是go语言里面的函数变量的作用域。(1)函数内部声明/定义的变量叫局部变量,作用域仅限于函数内部。(2)函数外部声明/定义的变量叫全局变量,作用域在整个包都有效,如果其首字母为大写,则作用域在整个程序有效。(3)如果变量是在一个代码块,比如 for / if 中,那么这个变量的的作用域就在该代码块. 你可以看看下面的这个例子 var name =" tom "
func test01(){
fmt . Println ( name ) }
func test02(){
name :=" jack "
fmt . PrintIn ( name ) }
func main (){
fmt . Printin ( name )
test01()
test02()
test01()}
其中第一个name的tom是全局变量,然后打印test1就是tom,第二个test02编译器采取就近原则,在第二个test里面就是打印的jack,因为是全局变量,所以他在test2里面改变的不算数,所以结果最后一个test1还是tom。 值得注意的是,有一种情况需要警惕
var Age int =20
Name :=1" tom " func main (){
fmt . Println (" name ", Name )}
这种情况会报错,因为这个 Name :=1" tom " 就相当var Name string Name =" tom ",他会报syntax error : non - declaration statement outside function body赋值语句是不能在函数体外的。 2.咱们再来讲讲go语言中的有关错误处理的问题实例,就先拿go语言的自定义错误说说。错误处理,自定义错误,Go 程序中,也支持自定义错误,使用errors . New和panic内置数,errors . New ("错误说明"),会返回一个 error 类型的值,表示一个错误。 panic 内置函数,接收一个 interface ()类型的值(也就是任何值了)作为参数。可以接收 error 类型的变量,输出错误信息,并退出程序
func readConf ( name string )( err error ){
if name ==" config . ini "{
return nil
} else {
return errors . New ("读取文件错误..")
这个上面的例子里函数去读取以配置文件 init . conf 的信息,如果文件名传入不正确,我们就返回一个自定义的错误。接着我们在下面写test02函数,如果读取文件发送错误,就输出这个错误,并且终止错误
func test02(){
err := readConf (" config . ini ")
if err != nil {
panic(err)}
fmt.println("test02()继续执行")}