Maison> développement back-end> Golang> le corps du texte

Ce que cela fait : *f = Foo(value)

PHPz
Libérer: 2024-02-13 15:10:09
avant
621 Les gens l'ont consulté

这是做什么的:*f = Foo(value)

L'éditeur PHP Zimo est là pour introduire un fragment de code commun : f = Foo(value). Ce code crée un objet Foo nommé f et transmet la valeur en tant que paramètre à son constructeur. De cette façon, nous pouvons utiliser l'objet Foo dans le programme, l'exploiter et le traiter. Un objet Foo peut être une instance d'une classe, qui peut avoir diverses propriétés et méthodes utilisées pour implémenter des fonctionnalités spécifiques. En créant un objet et en passant des paramètres, nous pouvons initialiser dynamiquement les propriétés de l'objet selon les besoins pour répondre aux exigences du programme. Il s'agit d'un extrait de code couramment utilisé qui peut être utilisé dans de nombreux scénarios de programmation différents.

Contenu de la question

J'ai trouvé l'implémentation de l'interfacedatabase/sql.Scanner, mais je ne la comprends pas bien ?

Peut être compilé

La pièce que j'ai eue étaitFoo是一个整数,它有方法Scan

  1. Scan方法返回error,但是如何返回fmt.Errorf("无效的数据库类型:%T %v", value, value)? N'est-ce pas un bug ou bien ?

  2. *f = Foo(value)是做什么的?当您将此类型传递给rows.Scan()时,它会调用Foo.Scan()?如果类型是预期的int64它将调用自己Foo(value)?

Code

type Foo int // Scan implements the database/sql.Scanner interface func (f *Foo) Scan(value interface{}) error { switch value := value.(type) { case int64: *f = Foo(value) default: return fmt.Errorf("Invalid database type: %T %v", value, value) } return nil }
Copier après la connexion

Solution

  1. fmt.Errorf(format, args)返回使用errors.New(str)创建的错误值,其中strest la chaîne de format (votre message d'erreur).

  2. ligne*f = Foo(value)int64值转换为Foo类型,并将其分配给方法接收者(注意fest un pointeur).

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!