Compartilhamento de tecnologia

Introdução à linguagem Go (1)

2024-07-12

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

Mecanismo de pesquisa de pacotes de dependências Go Modules
  • As dependências de terceiros baixadas são armazenadas em $GOPATH/pkg/mod Abaixo
  • O arquivo executável gerado por go install é armazenado em $GOPATH/binAbaixo
  • Depende da ordem de pesquisa:
    • Lista de trabalho
    • $GOPATH/pacote/mod
    • $GOPATH/fonte

1. Noções básicas da linguagem Go

1.Identificadores e palavras-chave

1.1 Método de nomenclatura

A nomenclatura de variáveis ​​go, constantes, tipos personalizados, pacotes e funções deve seguir as seguintes regras:

O primeiro caractere pode ser任意Unicode字符ou下划线

Outras partes além do primeiro caractere podem ser caracteres Unicode, sublinhados ou números

Não há limite para o comprimento do nome

Teoricamente, o nome pode conter caracteres chineses, ou mesmo todos os caracteres chineses, mas na prática, não faça isso.

1.2 Palavras-chave
quebrarpadrãofunçãointerfaceselecionar
casoadiarirmapaestrutura
chanoutroVá parapacotetrocar
constantesefaixatipocontinuar
paraimportarretornarCair emvar
1.3 Palavras reservadas

•constante

true false iota nil

•tipo de dados

int int8 int16 int32 int64

uint uint8 uint16 uint32 uint64

float32 float64

complex128 complex64

byte rune string

bool error uintptr

•função

make len cap new append copy

close delete complex real imag panic recover

1.4 Variáveis
1.4.1 Tipo de variável
tipoVá para tipos de variáveissaída FMT
inteiroint int8 int16 int32 int64 uint uint8 uint16 uint32 uint64%d
ponto flutuantefloat32 float64%f %e %g
pluralcomplex128 complex64%v
boleanobool%t
ponteirouintptr%d
Citarmap slice channel%v
bytebyte%d
qualquer personagemrune%d
cordastring%s
erroerror%v
1.4.2 Inicialização de variáveis
  • Se não for inicializado explicitamente após a declaração, o tipo numérico será inicializado como O, o tipo string será inicializado como uma string vazia e o tipo booleano será inicializado como falso.

    Tipos de referência, funções, ponteiros e interfaces são inicializados como nulo

    • var uma string=“china”
    • var a,b int=3,7
    • var a="china", inferência de tipo
    • var a,b=“china”, 7
  • Variáveis ​​(variáveis ​​não globais) dentro de funções podem ser declaradas e inicializadas por: =

    • a:=3
  • Sublinhado indica variável anônima

    • _=2+4
  • Variáveis ​​anônimas não ocupam namespace e não alocam memória, portanto podem ser reutilizadas

1,5 constantes

As constantes devem receber um valor quando são definidas e seu valor não pode ser alterado enquanto o programa está em execução.

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 Literais

Literal: O nome da variável não aparece, mas o valor aparece diretamente.Literais de tipos básicos são equivalentes a constantes

Diferentes tipos de dados não podem ser comparados, com exceção de literais

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 Escopo da variável
variáveis ​​globais
var (
  A=3	//全局变量,大写字母开头,所有地方都可以访问,跨package访问时需要带上package名称
	b=4	//全局变量,小写字母开头,本package内都可以访问
  • 1
  • 2
  • 3
  • 4
variáveis ​​locais
func fool{
	b:=5 //局部变量,仅本函数内可以访问。内部声明的变量可以跟外部声明的变量有冲突,以内部的为准
  
	{
  	b:=6	//仅小圈定的作用域内可以访问,可以跟外部的变量有冲突
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
1.8 Comentários e godoc
1.8.1 Forma de comentários
  • Comentários de linha única.Começar com //
  • Comentários de várias linhas. Várias linhas consecutivas começam com // ou use /* antes do parágrafo e */ no final do parágrafo.
  • Nenhuma linha em branco pode aparecer entre comentários de várias linhas
  • NOTA: Chama a atenção, TODO: Precisa de otimização no futuro, Obsoleto: É altamente recomendável não usar variáveis ​​ou funções.
  • Você pode escrever código go adicionando recuo antes da linha de comentário.
1.8.2 Posição dos comentários
  • Comentários do pacote. Pacote acima xxx. Um pacote só precisa escrever comentários em um só lugar, geralmente um doc.go dedicado.

    Existe apenas uma linha packagexxx e comentários sobre o pacote.

  • Comentários de estrutura.acima tipo xxx struct

  • Comentários de função.acima da função xxx()

  • Comentários de linha.acima ou à direita da linha

1.8.3 vá doc
  • go doc é o comando que vem com go
  • vá doc entrada classe/util
1.8.4 godoc
  • godoc pode exportar uma versão web do documento de anotação para o código do projeto.
    • Você precisa instalar, primeiro obtenha golang.org/x/tools/cmd/godoc
    • Inicie http:godoc -http=:6060
    • Use um navegador para visitar: http://127.0.0.1:6060/pkg/go-course/entrance class