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

WBOY
Lepaskan: 2024-02-09 08:51:33
ke hadapan
574 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!

sumber:stackoverflow.com
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