Rumah > pembangunan bahagian belakang > Golang > jenis nilai pulangan fungsi Eval go-redis apabila skrip Lua mengembalikan tatasusunan

jenis nilai pulangan fungsi Eval go-redis apabila skrip Lua mengembalikan tatasusunan

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-02-09 08:51:33
ke hadapan
784 orang telah melayarinya

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

Editor PHP Xigua berada di sini untuk memperkenalkan kepada anda isu tentang jenis nilai pulangan fungsi Eval dalam perpustakaan go-redis. Apabila menggunakan skrip Lua untuk melaksanakan fungsi Eval, kadangkala skrip mengembalikan tatasusunan. Jadi dalam perpustakaan go-redis, apakah jenis nilai pulangan ini? Mari jawab soalan ini secara terperinci di bawah.

Kandungan soalan

Apabila skrip lua mengembalikan tatasusunan jadual semasa panggilan eval, bagaimana cara saya menukarnya kepada rentetan [] semasa?

redis cli mengembalikan balasan kumpulan dalam format berikut.

1) val1
2) val2
Salin selepas log masuk
Fungsi

go-redis eval akan mengembalikan kumpulan penyertaan sebagai

["val1", "val2"] 
Salin selepas log masuk

Penyelesaian

redis mengembalikan tatasusunan jadual lua sebagai tatasusunan resp2. Pelanggan go kemudiannya akan memetakan respons itu kepada jenis asli pergi. go-redis Dokumentasi yang berkaitan boleh didapati di sini: lua and go type.

Ringkasnya, jadual lua memetakan kepada balasan pukal, manakala pelanggan pergi memetakannya kepada serpihan antara muka: []interface{}.

go-redis 脚本 runeval 都返回 *cmd。您可以使用此类型的方法来检索 go 类型的输出。 result 给出 (interface{}, error),您可以键入断言任何您想要的内容,否则 stringslice 是一个方便的 getter,可以立即检索 []string Kedua-dua skrip run dan eval mengembalikan *cmd. Anda boleh menggunakan kaedah jenis ini untuk mendapatkan keluaran jenis go. hasil Diberi (antara muka{}, ralat), anda boleh menaip menegaskan apa sahaja yang anda mahu, jika tidak stringslice

ialah getter yang mudah yang boleh mendapatkan semula []string dengan serta-merta.

Jadi ia kelihatan seperti:

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)
Salin selepas log masuk
Jika nilai sebenarnya bukan semua rentetan, gunakan slice 获取 []interface{}slice untuk mendapatkan 🎜 hirisan dan kemudian periksa elemen secara individu. 🎜

Atas ialah kandungan terperinci jenis nilai pulangan fungsi Eval go-redis apabila skrip Lua mengembalikan tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan