ホームページ  >  記事  >  バックエンド開発  >  go-redis Lua スクリプトが配列を返すときの Eval func 戻り値の型

go-redis Lua スクリプトが配列を返すときの Eval func 戻り値の型

WBOY
WBOY転載
2024-02-09 08:51:33536ブラウズ

go-redis Eval func返回值类型,当Lua脚本返回数组时

php 編集者の Xigua が、go-redis ライブラリの Eval 関数の戻り値の型に関する問題を紹介します。 Lua スクリプトを使用して Eval 関数を実行すると、スクリプトが配列を返すことがあります。では、go-redis ライブラリでは、この戻り値の型は何でしょうか?以下でこの質問に詳しく答えてみましょう。

質問内容

lua スクリプトが eval 呼び出し中にテーブル配列を返した場合、go でそれを [] 文字列に変換するにはどうすればよいですか?

redis cli は、次の形式でバッチ応答を返します。

リーリー

go-redis eval 関数はバッチエントリを

として返します
1) val1
2) val2

Solution

redis は、lua テーブル配列を resp2 配列として返します。その後、go クライアントはその応答を go ネイティブ タイプにマッピングします。 go-redis の関連ドキュメントは、lua および go type にあります。

簡単に言えば、lua テーブルは一括応答にマッピングされ、Go クライアントはそれをインターフェース フラグメント []interface{} にマッピングします。

go-redis スクリプト runeval は両方とも *cmd を返します。このタイプのメソッドを使用して、go タイプの出力を取得できます。 result (interface{}, error) が指定された場合は、好きなものを Assert と入力できます。それ以外の場合は、stringslice が瞬時に取得する便利なゲッターです。 []文字列を取得します。

つまり、次のようになります:

リーリー

値が実際にはすべて文字列ではない場合は、slice を使用して []interface{} スライスを取得し、要素を個別に検査します。

以上がgo-redis Lua スクリプトが配列を返すときの Eval func 戻り値の型の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。