Maison > Article > développement back-end > Comment écrire du code en Golang
En tant que langage de programmation relativement jeune, Golang a reçu de plus en plus d'attention et de faveur, notamment dans le domaine du développement back-end. Cet article présentera la syntaxe de base et les paradigmes de programmation courants de Golang pour aider les débutants à démarrer rapidement.
1. Syntaxe de base
Il existe de nombreuses façons de déclarer des variables. Vous pouvez utiliser le mot-clé var, ou vous pouvez utiliser l'opérateur := pour la déduction automatique de type :
var i int // 默认值为0 i = 10 j := "Hello World" // 自动推导类型为string
Constant. life utilise const Les mots clés peuvent être utilisés pour les types d'énumération, les valeurs, les chaînes, etc. :
const ( Pi = 3.14159265358979323846 Apples = 1 << iota // Apples的值是1左移0位,即1 Oranges // Oranges的值是1左移1位,即2 Bananas // Bananas的值是1左移2位,即4 )
La structure de contrôle du langage Go est la même que celle des autres langages, y compris if-else, switch-case, pour Instruction de boucle et de saut :
if i > 10 { fmt.Println("i is greater than 10") } else { fmt.Println("i is less than or equal to 10") } switch { case i < 0: fmt.Println("i is negative") case i > 0: fmt.Println("i is positive") default: fmt.Println("i is zero") } for i := 0; i < 10; i++ { fmt.Println(i) } // 跳转语句 goto label1 fmt.Println("this line will never get executed") label1: fmt.Println("jumped to label1")
Les tableaux sont des types de valeur et la longueur est déterminée lorsqu'ils sont déclarés, tandis que les tranches sont des types de référence et la longueur change dynamiquement. Les tranches peuvent être créées via la fonction make ou générées par des opérations de découpage :
// 数组 var arr [5]int for i := 0; i < 5; i++ { arr[i] = i } // 切片的创建和操作 var slice1 []int = arr[1:3] slice2 := make([]int, 5, 10) // 第2个参数是长度,第三个参数是容量 slice2 = append(slice2, 1, 2, 3)
Les structures dans Golang peuvent non seulement définir des champs, mais aussi des méthodes. Le type pointeur de la structure peut être utilisé pour accéder aux champs et aux méthodes à l'aide des opérateurs . et -> :
type Person struct { name string age int } func (p Person) SayHello() { fmt.Println("Hello, my name is", p.name, ", and I am", p.age, "years old.") } func main() { p := Person{name: "Alice", age: 30} p.SayHello() pp := &p fmt.Println(pp.age) }
2. Paradigme de programmation
La programmation orientée objet dans Golang s'appuie également fortement sur structures et méthodes. Ici, nous pouvons utiliser le type d'interface pour définir des méthodes partagées :
type Animal interface { Speak() string } type Dog struct { name string } func (d Dog) Speak() string { return "Woof! I am " + d.name } func main() { d := Dog{"Fido"} fmt.Println(d.Speak()) }
Golang est un langage qui prend naturellement en charge la programmation concurrente. En utilisant les deux concepts de goroutine et de canal, nous pouvons facilement implémenter des programmes simultanés efficaces :
func worker(id int, c chan int) { for { n, ok := <-c if !ok { break } fmt.Printf("Worker %d received %d ", id, n) } fmt.Printf("Worker %d is done ", id) } func createWorker(id int) chan<- int { c := make(chan int) go worker(id, c) return c } func main() { c := make(chan int) var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.Add(1) go func(id int) { c := createWorker(id) for j := 0; j < 10; j++ { c <- j } wg.Done() }(i) } wg.Wait() close(c) time.Sleep(time.Second) }
Ce qui précède est la syntaxe de base et le paradigme de programmation de Golang. La discussion sur les fonctionnalités de langage plus avancées et les scénarios d'application pratiques nécessite une maîtrise du langage. -études et recherches approfondies.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!