Introduction au langage Go et écriture de votre premier programme Go

1. Introduction

1. Nouveaux défis dans le développement de logiciels

  1. Architecture matérielle multicœur
  2. Cluster informatique distribué à très grande échelle
  3. Échelle de développement et vitesse de mise à jour sans précédent du développement Web.

BAT, Didi et d'autres sociétés l'utilisent, et Zhihu a abandonné Python et est passé à Go. Docker et K8 sont également utilisés, également connus sous le nom de langages de développement cloud. Un autre langage de développement blockchain.

2. Fonctionnalités appréciées des développeurs

  1. Simple, 25 mots-clés
  2. Prise en charge de la concurrence intégrée, garbage collection
  3. Langage statique compilé et efficace
  4. Productivité, introduction claire à la gestion des dépendances, conception de type d'interface unique, contraintes de programmation. Reportez-vous à l'opération iOS pour en supprimer beaucoup. Le chemin de la simplicité.

3. Malentendu

Le contrôle de concurrence de la mémoire partagée ignore le mécanisme de concurrence CSP du langage Go lui-même. De plus, le manque d'élégance de Java présente des pièges.

4. Installation de Google et documentation officielle

2. Écrivez le premier programme Go

1. Construction d'un environnement de développement

GOPATH :

  1. Cette variable d'environnement doit être définie avant la version 1.8
  2. Après la version 1.8 (y compris 1.8), s'il n'y a aucun paramètre, la valeur par défaut est utilisée.
  • La valeur par défaut est 0 sous Unix $HOME/goet 0 sous Windows %USERPROFILE%/go.
  • Sur Mac, GOPATH peut ~/.bash_profileêtre défini en modifiant .

2. Écrivez un programme 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. Structure de base du programme

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

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

4. Entrée des candidatures

  1. Doit être mainun package : package main(La déclaration du package doit être main, mais le nom du répertoire n'a pas besoin d'être 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. Doit être mainune méthode :func main()
  2. Il n'est pas nécessaire que le nom du fichier soitmain.go

5. Quitter la valeur de retour

Différences avec les autres langages de programmation majeurs :

  1. Les fonctions dans Go mainne prennent en charge aucune valeur de retour
  2. os.ExitStatut de retour par

package main

import (
    "fmt"
    "os"
)

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

Résultat de sortie :

> go run hello_world.go  
Hello World
exit status 255

6. Obtenez les paramètres de ligne de commande

Différences avec les autres langages de programmation majeurs

  1. mainLa fonction ne prend pas en charge le passage de paramètres
  2. os.ArgsObtenez les paramètres de ligne de commande directement dans le programme via
package main

import (
    "fmt"
    "os"
)

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

Ajoutez un paramètre pour exécuter le fichier et générer une commande binaire et nos paramètres de ligne de commande.

>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

Je suppose que tu aimes

Origine blog.csdn.net/weixin_62173811/article/details/129909300
conseillé
Classement