php 編集者の Xigua が、go-redis ライブラリの Eval 関数の戻り値の型に関する問題を紹介します。 Lua スクリプトを使用して Eval 関数を実行すると、スクリプトが配列を返すことがあります。では、go-redis ライブラリでは、この戻り値の型は何でしょうか?以下でこの質問に詳しく答えてみましょう。
lua スクリプトが eval 呼び出し中にテーブル配列を返した場合、go でそれを [] 文字列に変換するにはどうすればよいですか?
redis cli は、次の形式でバッチ応答を返します。
リーリーgo-redis eval 関数はバッチエントリを
として返します1) val1 2) val2
redis は、lua テーブル配列を resp2 配列として返します。その後、go クライアントはその応答を go ネイティブ タイプにマッピングします。 go-redis
の関連ドキュメントは、lua および go type にあります。
簡単に言えば、lua テーブルは一括応答にマッピングされ、Go クライアントはそれをインターフェース フラグメント []interface{}
にマッピングします。
go-redis
スクリプト run
と eval
は両方とも *cmd
を返します。このタイプのメソッドを使用して、go タイプの出力を取得できます。 result
(interface{}, error)
が指定された場合は、好きなものを Assert と入力できます。それ以外の場合は、stringslice
が瞬時に取得する便利なゲッターです。 []文字列
を取得します。
つまり、次のようになります:
リーリー 値が実際にはすべて文字列ではない場合は、slice
を使用して []interface{}
スライスを取得し、要素を個別に検査します。
以上がgo-redis Lua スクリプトが配列を返すときの Eval func 戻り値の型の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。