Compartir tecnología

Introducción al lenguaje Go (1)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Los módulos Go dependen del mecanismo de búsqueda de paquetes
  • Las dependencias de terceros descargadas se almacenan en $GOPATH/pkg/mod Abajo
  • El archivo ejecutable generado por go install se almacena en $GOPATH/binAbajo
  • Depende del orden de búsqueda:
    • lista de trabajo
    • $GOPATH/paquete/mod
    • $GOPATH/fuente

1. Conceptos básicos del lenguaje Go

1.Identificadores y palabras clave

1.1 Método de denominación

La denominación de variables, constantes, tipos personalizados, paquetes y funciones de go debe seguir las siguientes reglas:

El primer carácter puede ser任意Unicode字符o下划线

Las partes distintas del primer carácter pueden ser caracteres Unicode, guiones bajos o números.

No hay límite para la longitud del nombre.

En teoría, el nombre puede contener caracteres chinos, o incluso todos los caracteres chinos, pero en la práctica, no hagas esto.

1.2 Palabras clave
romperpor defectofuncióninterfazseleccionar
casoaplazarirmapaestructura
canaldemásir apaquetecambiar
constantesirangotipocontinuar
paraimportardevolvercaer a travésvariedad
1.3 palabras reservadas

•constante

true false iota nil

•tipo de datos

int int8 int16 int32 int64

uint uint8 uint16 uint32 uint64

float32 float64

complex128 complex64

byte rune string

bool error uintptr

•función

make len cap new append copy

close delete complex real imag panic recover

1.4 Variables
1.4.1 Tipos de variables
tipoIr a tipos de variablessalida fmt
enteroint int8 int16 int32 int64 uint uint8 uint16 uint32 uint64%d
punto flotantefloat32 float64%f %e %g
pluralcomplex128 complex64%v
booleanobool%t
punterouintptr%d
Citamap slice channel%v
bytebyte%d
cualquier personajerune%d
cadenastring%s
errorerror%v
1.4.2 Inicialización de variables
  • Si no se inicializa explícitamente después de la declaración, el tipo numérico se inicializa en O, el tipo de cadena se inicializa en una cadena vacía y el tipo booleano se inicializa en falso.

    Los tipos de referencia, funciones, punteros e interfaces se inicializan a cero

    • var una cadena=“china”
    • var a,b entero=3,7
    • var a="china", inferencia de tipos
    • var a,b=“china”, 7
  • Las variables (variables no globales) dentro de funciones se pueden declarar e inicializar mediante: =

    • a:=3
  • El guión bajo indica una variable anónima

    • _=2+4
  • Las variables anónimas no ocupan espacio de nombres ni asignan memoria, por lo que pueden reutilizarse

1,5 constantes

A las constantes se les debe asignar un valor cuando se definen y su valor no se puede cambiar mientras el programa se está ejecutando.

const PI float32=3.14

const(
	PI=3.14
	E=2.71
)

const(
  a=100
  b	//100,跟上一行的值相同
  c	//100,跟上一行的值相同
)

const(
	a = iota	//0
  b					//1
  c					//2
  d					//3
)

const(
	a = iota	//0
  b					//1
  _					//2
  d					//3
)

const(
	a = iota	//0
  b	= 30		//30
  c	= iota	//2
  d					//3
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
1.6 literales

Literal: No aparece el nombre de la variable, pero aparece directamente el valor.Los literales de tipos básicos son equivalentes a las constantes.

No se pueden comparar diferentes tipos de datos, a excepción de los literales.

fmt.Printf("9tn"04 ==4.00//用到了整型字面量和浮点型字面量
fmt.Printf("%vn".4i//虚数字面量0.4i
fmt.Printf("%tn", "u4f17'=='//Unicode和rune字面量
fmt.Printf("Hello nWorldn!n"//字符串字面量
  • 1
  • 2
  • 3
  • 4
1.7 Alcance variable
variables globales
var (
  A=3	//全局变量,大写字母开头,所有地方都可以访问,跨package访问时需要带上package名称
	b=4	//全局变量,小写字母开头,本package内都可以访问
  • 1
  • 2
  • 3
  • 4
variables locales
func fool{
	b:=5 //局部变量,仅本函数内可以访问。内部声明的变量可以跟外部声明的变量有冲突,以内部的为准
  
	{
  	b:=6	//仅小圈定的作用域内可以访问,可以跟外部的变量有冲突
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
1.8 Comentarios y Godoc
1.8.1 Forma de comentarios
  • Comentarios de una sola línea.Empezar con //
  • Comentarios de varias líneas. Varias líneas consecutivas comienzan con //, o use /* antes del párrafo y */ al final del párrafo.
  • No pueden aparecer líneas en blanco entre comentarios de varias líneas.
  • NOTA: Llama la atención, TODO: Necesita optimización en el futuro, En desuso: Se recomienda encarecidamente no utilizar variables o funciones.
  • Puede escribir código go agregando sangría antes de la línea de comentario.
1.8.2 Posición de los comentarios
  • Comentarios del paquete. Arriba del paquete xxx. Un paquete solo necesita escribir comentarios en un solo lugar, generalmente un doc.go dedicado.

    Solo hay una línea packagexxx y comentarios sobre el paquete.

  • Comentarios de estructura.arriba tipo estructura xxx

  • Comentarios de funciones.función anterior xxx()

  • Comentarios de línea.encima o a la derecha de la fila

1.8.3 ir al documento
  • go doc es el comando que viene con go
  • Go doc entrada clase/utilidad
1.8.4 documento de buena calidad
  • godoc puede exportar una versión web del documento de anotación para el código del proyecto.
    • Primero debe instalarlo y obtener golang.org/x/tools/cmd/godoc
    • Iniciar http:godoc -http=:6060
    • Utilice un navegador para visitar: http://127.0.0.1:6060/pkg/go-course/entrance class