Maison  >  Article  >  développement back-end  >  Go Kafka - valeurs de configuration

Go Kafka - valeurs de configuration

WBOY
WBOYavant
2024-02-06 08:21:081149parcourir

Go Kafka - 配置值

Contenu de la question

J'utilise go-kafka (https://pkg.go.dev/github.com/confluenceinc/confluence-kafka-go/kafka#configmap.get) et en utilisant configmap, j'ai rencontré un problème avec la méthode get.

La documentation indique que get nécessite une clé et un defval (de type configvalue), mais je ne sais pas comment créer une configvalue à transmettre.

Voici ce que j'ai essayé :

configfile := os.args[1]
    conf := readconfig(configfile)
    
    x := conf["sasl.password"]

    fmt.printf(conf.get("sasl.password", x))
configFile := os.Args[1]
    conf := ReadConfig(configFile)
    
    x := kafka.ConfigValue("Test")

    fmt.Printf(conf.Get("sasl.password", x))

Mais à chaque fois j'obtiens la même erreur :

不能使用 'conf.get("sasl.password", x)' (type (configvalue, error)) 作为类型 (string, any) 或 string

Où est-ce que je me suis trompé ?


Bonne réponse


En ce qui concerne votre utilisation de configmap.get, vous ne faites rien de mal en soi.

L'erreur que vous voyez est causée par votre utilisation de fmt.printf.

Immédiatement faux car get() 返回一个值和一个错误 ((configvalue, error)),您试图将其直接传递到 printf() , qui nécessite qu'une chaîne contenant un spécificateur de format et une liste de variables soit remplacée par toutes les valeurs de ces spécifications de format.

Vous devez d'abord obtenir la valeur configmap et tester les erreurs :

   v, err := conf.get("sasl.password", x)
   if err != nil {
      // handle/return the error
   }

Alors si err 为 nil,您可以使用 %s 规范将值输出到 printf et transmettez la valeur de retour :

   if err == nil {
      fmt.Printf("%s", v)
   }

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer