Introdução à linguagem Go e escrita de seu primeiro programa Go

1. Introdução

1. Novos desafios no desenvolvimento de software

  1. Arquitetura de hardware multinúcleo
  2. Cluster de computação distribuída em escala ultralarga
  3. Escala de desenvolvimento sem precedentes e velocidade de atualização do desenvolvimento web.

BAT, Didi e outras empresas estão usando-o, e Zhihu abandonou o Python e mudou para o Go. Docker e K8s também são usados, também conhecidos como linguagens de desenvolvimento em nuvem. Outra linguagem de desenvolvimento blockchain.

2. Recursos que os desenvolvedores gostam

  1. Simples, 25 palavras-chave
  2. Suporte integrado à simultaneidade, coleta de lixo
  3. Linguagem estática compilada e eficiente
  4. Produtividade, introdução clara ao gerenciamento de dependências, design de tipo de interface exclusivo, restrições de programação. Consulte a operação do iOS para cortar muito. Da avenida à simplicidade.

3. Mal-entendidos

O controle de simultaneidade de memória compartilhada ignora o mecanismo de simultaneidade CSP da própria linguagem Go. Além disso, existem armadilhas causadas pela deselegância do Java.

4. Instalação do Google e documentação oficial

2. Escreva o primeiro programa Go

1. Construção do ambiente de desenvolvimento

GOPATO:

  1. Esta variável de ambiente deve ser definida antes da versão 1.8
  2. Após a versão 1.8 (incluindo 1.8), se não houver configuração, o valor padrão será usado.
  • O padrão é 0 no Unix $HOME/goe 0 no Windows %USERPROFILE%/go.
  • No Mac, GOPATH pode ~/.bash_profileser definido modificando o arquivo .

2. Escreva um programa Go

// 查看 Go 版本
go version

// 创建 Go 学习的总目录 d:\Gocode
// src 是源码路径,在下面建立 ch1/main/hello_world.go,记得 helloworld 文件拓展名记得要写 go
package main
import "fmt"

func  main() {
 fmt.Println("Hello World") 
}



//在 cmd 里面:

>d:
>cd d:\Gocode\src\ch1\main
// 运行代码
go run hello_world.go
// 编译代码,会生成一个 hello_world 的二进制文件,执行这个二进制文件也会直接回显出来 Hello World
go build hello_world.go

// Go 在默认情况下都会使用静态连接,编译完的 Go 程序是一个独立的二进制文件,有很好的便携性。可以拷贝到不同的机器上运行

3. Estrutura básica do programa

package main // 包,表明代码所在的模块(包)
import "fmt" // 引入的代码依赖

// 功能实现
func main() {
 fmt.Println("Hello World") 

4. Entrada do aplicativo

  1. Deve ser mainum pacote: package main(A declaração do pacote deve ser principal, mas o nome do diretório não precisa ser principal)
// 新建一个目录`\Gocode\src\ch1\hello`,把前面的`hello_world.go`文件复制过去,依然执行正常
> go run hello_world.go  
Hello World

//但如果把`hello_world.go`里面的`package main`改成`package main1`再`go run`运行就会报错

> go run hello_world.go
package command-line-arguments is not a main package
  1. Deve ser mainum método:func main()
  2. O nome do arquivo não precisa sermain.go

5. Valor de retorno de saída

Diferenças de outras linguagens de programação importantes:

  1. Funções em Go mainnão suportam nenhum valor de retorno
  2. os.ExitStatus de retorno por

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Println("Hello World")
    os.Exit(-1)
}

Resultado de saída:

> go run hello_world.go  
Hello World
exit status 255

6. Obtenha parâmetros de linha de comando

Diferenças de outras linguagens de programação importantes

  1. mainA função não suporta passagem de parâmetros
  2. os.ArgsObtenha parâmetros de linha de comando diretamente no programa através
package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Println(os.Args)
    fmt.Println("Hello, world!")
    os.Exit(-1)
}

Adicione um parâmetro para executar o arquivo e gerar um comando binário e nossos parâmetros de linha de comando.

>go run hello_world.go ddao
[C:\Users\xxxxxxxx\xxx\xxxxxxxxxx\go-build2455331386\b001\exe\hello_world.exe ddao]
Hello, world!
exit status 255
package main

import (
    "fmt"
    "os"
)

func main() {
    if len(os.Args) > 1 {
        fmt.Println("Hello, world!", os.Args[1])
    }
}
>go run hello_world.go ddao
Hello, world! ddao

Acho que você gosta

Origin blog.csdn.net/weixin_62173811/article/details/129909300
Recomendado
Clasificación