English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang Basics Tutorial

Golang Control Statements

Golang Functions & Methods

Golang Structs

Golang Slices & Arrays

Golang Strings (String)

Golang Pointers

Golang Interfaces

Golang Concurrency

Golang Exceptions (Error)

Autres éléments divers Golang

Fonction utilisée comme champ de structure Go

Dans Golang, une structure ou struct est un type utilisateur défini, qui nous permet de créer un ensemble d'éléments de différents types dans une unité. Toute entité réelle ayant un ensemble d'attributs ou de champs peut être représentée par une structure. Nous savons que dans le langage Go, une fonction est également un type utilisateur défini, donc vous pouvez créer un champ de fonction dans une structure Go. Vous pouvez également créer un champ de fonction anonyme dans une structure Go, comme dans l'exemple2comme indiqué.

Syntaxe :

type function_name func()
type strcut_name struct{
  var_name  function_name
}

Laissez-nous discuter de ce concept à l'aide d'un exemple :

//En tant que champ dans une structure Go
package main 
  
import "fmt"
  
// Type Finalsalary
type Finalsalary func(int, int) int
  
//Création de la structure
type Author struct { 
    name      string 
    language  string 
    Marticles int
    Pay       int
  
    //Fonction comme champ
    salary Finalsalary 
} 
  
func main() { 
  
    // Initialisation des champs de la structure
    result := Author{ 
        name:      "Sonia", 
        language:  "Java", 
        Marticles: 120, 
        Pay:       500, 
        salary: func(Ma int, pay int) int { 
            return Ma * pay 
        , 
    } 
  
    fmt.Println("Nom de l'auteur: ", result.name) 
    fmt.Println("Langue: ", result.language) 
    fmt.Println("Nombre total d'articles publiés en mai: ", result.Marticles) 
    fmt.Println("Prime par article: ", result.Pay) 
    fmt.Println("Salaire total: ", result.salary(result.Marticles, result.Pay)) 
}

Sortie :

Nom de l'auteur:  Sonia
Langue:  Java
Nombre total d'articles publiés en mai:  120
Prime par article:  500
Salaire total:  60000

Utilisation de la fonction anonyme comme champ d'une structure Go2:

//Utilisation de la fonction anonyme comme champ d'une structure Go
package main 
  
import "fmt"
  
//Création de la structure
type Author struct { 
    name      string
    language  string
    Tarticles int
    Particles int
    Pending   func(int, int) int
} 
  
func main() { 
  
    //Initialisation des champs de la structure
    result := Author{ 
        name:      "Sonia", 
        language:  "Java", 
        Tarticles: 340, 
        Particles: 259, 
        Pending: func(Ta int, Pa int) int { 
            return Ta - Pa 
        , 
    } 
  
    fmt.Println("Nom de l'auteur: ", result.name) 
    fmt.Println("Langue: ", result.language) 
    fmt.Println("Nombre total d'articles: ", result.Tarticles) 
      
    fmt.Println("Nombre total d'articles publiés: ", result.Particles) 
    fmt.Println("Articles à traiter: ", result.Pending(result.Tarticles, result.Particles)) 
}

Sortie :

Nom de l'auteur:  Sonia
Langue:  Java
Nombre total d'articles:  340
Nombre total d'articles publiés:  259
Article à traiter:  81