Looking for go Keywords? Try Ask4Keywords

GoLe contexte


Syntaxe

  • tapez CancelFunc func ()
  • func Background () Contexte
  • func TODO () Contexte
  • func WithCancel (contexte parent) (contexte ctx, annuler CancelFunc)
  • func WithDeadline (contexte parent, heure limite.Time) (Contexte, CancelFunc)
  • func WithTimeout (contexte parent, timeout time.Duration) (Context, CancelFunc)
  • func WithValue (Contexte parent, interface clé {}, interface val {})

Remarques

Le paquet de context (dans Go 1.7) ou le paquet golang.org/x/net/context (Pre 1.7) est une interface permettant de créer des contextes pouvant être utilisés pour transporter des valeurs et des délais de requête entre les limites des API et entre les services. comme simple implémentation de ladite interface.

à part: le mot "contexte" est généralement utilisé pour désigner l’arbre entier ou des feuilles individuelles dans l’arbre, par exemple. les valeurs context.Context réelles.

À un niveau élevé, un contexte est un arbre. De nouvelles feuilles sont ajoutées à l'arborescence lors de leur construction (un context.Context avec une valeur parente) et les feuilles ne sont jamais supprimées de l'arborescence. Tout contexte a accès à toutes les valeurs au-dessus (l'accès aux données ne circule que vers le haut) et si un contexte est annulé, ses enfants sont également annulés (les signaux d'annulation sont propagés vers le bas). Le signal d'annulation est implémenté au moyen d'une fonction qui renvoie un canal qui sera fermé (lisible) lorsque le contexte est annulé; Cela rend les contextes très efficaces pour implémenter le modèle de concurrence de pipeline et d'annulation , ou les délais d'attente.

Par convention, les fonctions qui prennent un contexte ont le premier argument ctx context.Context . Bien qu'il ne s'agisse que d'une convention, il convient de la suivre, car de nombreux outils d'analyse statique recherchent spécifiquement cet argument. Étant donné que Context est une interface, il est également possible de transformer des données contextuelles existantes (valeurs transmises lors d'une chaîne d'appels) en un contexte Go normal et de les utiliser de manière rétrocompatible en implémentant quelques méthodes. De plus, les contextes sont sécurisés pour un accès simultané, de sorte que vous pouvez les utiliser depuis de nombreuses goroutines (qu'elles s'exécutent sur des threads parallèles ou des coroutines simultanées) sans crainte.

Lectures complémentaires

Le contexte Exemples Liés