Intercambio de conocimientos sobre las funciones de Go
Uno, función de inicio
1. Características: será main
ejecutado por el marco en ejecución de Go antes de que se ejecute la función
package main
import (
"fmt"
)
//init在main前面运行,可以数据初始化
func init(){
fmt.Println("init打印") //类似与构造函数
}
func main(){
fmt.Println("main打印")
}
Los resultados de salida del código anterior son:
2. Función: completar un trabajo de asignación inicial
3. Nota: la init
función se ejecuta después de la ejecución de la variable global,
cuando se main.go
llama util.go
, tiene variables globales y el orden de ejecución de la función init.
2. Función anónima
1. Definición: una función anónima es una función sin nombre
2. Cómo usar
Use el método uno de función anónima (llame a la función solo una vez)
func main(){
res:=func (n1 int,n2 int) int {
return n1+n2
}(10,20)
fmt.Println("res=",res)
}
La segunda forma de usar funciones anónimas (asignar la función a una variable y llamar a la función anónima a través de la variable)
func main(){
a:=func (n1 int,n2 int) int {
return n1+n2
}
res:=a(10,20)
fmt.Println("res=",res)
}
3. Función anónima global
Defina la segunda forma de utilizar funciones anónimas en variables globales, es decir, a es una función anónima global, y todas las subfunciones de este paquete pueden llamar a la función anónima.
3. Función de manejo de errores
Antecedentes:
1. Por defecto, si ocurre panic
un error, el programa se cerrará (bloqueará) Esperamos que el error pueda ser detectado y el programa pueda continuar ejecutándose.
2, debido a la búsqueda de la belleza Ir idioma, así que no utiliza el tradicional try...catch...
, por lo que la introducción de defer
, panic
,, recover
Go cuando se lanza en estado de pánico, y luego se recuperan mediante la captura de la Defer excepción, en un proceso normal.
func testError(){
defer func(){
err:=recover() //内置函数捕获异常
if err!=nil{
fmt.Println("err=",err)
fmt.Println("发送信息给管理员")
}
}() //这里将错误信息发送信息
num:=1
num2:=0
res:=num/num2 //0不能做分母,这个是必错的代码
fmt.Println(res)
}
3. Error personalizado
erroes.New ("descripción del error"); devuelve un valor de tipo erroe, que indica un error, luego recibe el pánico, muestra el mensaje de error y sale del programa, el código después del código de error no se ejecuta
//自定义错误
func readConfig(name string)error{
b:=strings.HasSuffix(name,"fig")
if b==true{
return nil
}else{
//返回自定义错误
return errors.New("文件名不正确")
}
}
func errRead(){
result:=readConfig("mmp.fi")
if result !=nil{
panic(result)
}else{
fmt.Println("没错误,继续执行")
}
}
func main(){
// testError()
// fmt.Println("发送邮件") //莫尔尼情况下不能到这一行
errRead()
fmt.Println("下面代码不执行了")
}
Si la lectura es un poco útil para ti, dale me gusta y apoya, gracias