Maison > Article > développement back-end > go-redis Eval func renvoie le type de valeur lorsque le script Lua renvoie un tableau
L'éditeur PHP Xigua est là pour vous présenter le problème du type de valeur de retour de la fonction Eval dans la bibliothèque go-redis. Lorsque vous utilisez un script Lua pour exécuter la fonction Eval, le script renvoie parfois un tableau. Alors dans la bibliothèque go-redis, quel est le type de cette valeur de retour ? Répondons à cette question en détail ci-dessous.
Lorsqu'un script Lua renvoie un tableau de table lors d'un appel eval, comment puis-je le convertir en chaîne [] en go ?
redis cli renvoie des réponses par lots au format suivant.
1) val1 2) val2La fonction d'évaluation
go-redis renverra le lot d'entrées sous la forme
["val1", "val2"]
redis renvoie le tableau de table Lua sous forme de tableau resp2. Le client go mappera ensuite cette réponse à un type go natif. go-redis
La documentation pertinente peut être trouvée ici : types Lua et Go.
En termes simples, les tables Lua sont mappées aux réponses groupées, tandis que les clients Go les mappent aux fragments d'interface : []interface{}
.
go-redis
脚本 run
和 eval
都返回 *cmd
。您可以使用此类型的方法来检索 go 类型的输出。 result
给出 (interface{}, error)
,您可以键入断言任何您想要的内容,否则 stringslice
是一个方便的 getter,可以立即检索 []string
Les deux scripts run
et eval
renvoient *cmd
. Vous pouvez utiliser ce type de méthode pour récupérer la sortie de type go. result
Étant donné (interface{}, error)
, vous pouvez taper assert ce que vous voulez, sinon stringslice
[]string
. Donc ça ressemble à :
script := redis.NewScript(` local foo = {"val1", "val2"} return foo `) cmd := script.Run(/* parameters */) i, err := cmd.Result() // (interface, error) // or ss, err := cmd.StringSlice() // ([]string, error)Si les valeurs ne sont pas réellement toutes des chaînes, utilisez
slice
获取 []interface{}
slice
pour obtenir une 🎜 tranche, puis inspectez les éléments individuellement. 🎜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!