第六届字节跳动青训营第7课 | 青训营(实践篇01)

95 阅读2分钟

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()继续执行")}