Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
WBOYke hadapan
2024-02-09 08:51:33469semak imbas

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
Fungsi

go-redis eval akan mengembalikan kumpulan penyertaan sebagai

["val1", "val2"] 

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)
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:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam