Intercambio de conocimientos sobre las funciones de Go

Intercambio de conocimientos sobre las funciones de Go

Uno, función de inicio

1. Características: será mainejecutado 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:
Inserte la descripción de la imagen aquí
2. Función: completar un trabajo de asignación inicial
3. Nota: la initfunción se ejecuta después de la ejecución de la variable global,
cuando se main.gollama util.go, tiene variables globales y el orden de ejecución de la función init.
Inserte la descripción de la imagen aquí
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 panicun 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,, recoverGo 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

Supongo que te gusta

Origin blog.csdn.net/yyq1102394156/article/details/113872830
Recomendado
Clasificación