>백엔드 개발 >Golang >go-redis Lua 스크립트가 배열을 반환할 때 Eval func 반환 값 유형

go-redis Lua 스크립트가 배열을 반환할 때 Eval func 반환 값 유형

WBOY
WBOY앞으로
2024-02-09 08:51:33573검색

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

PHP 편집기 Xigua는 go-redis 라이브러리에 있는 Eval 함수의 반환 값 유형에 대한 문제를 소개하기 위해 왔습니다. Lua 스크립트를 사용하여 Eval 함수를 실행할 때 스크립트가 배열을 반환하는 경우가 있습니다. 그렇다면 go-redis 라이브러리에서 이 반환 값의 유형은 무엇입니까? 아래에서 이 질문에 대해 자세히 답변해 보겠습니다.

질문 내용

평가 호출 중에 lua 스크립트가 테이블 배열을 반환할 때 go에서 이를 [] 문자열로 어떻게 변환합니까?

redis cli는 다음 형식으로 일괄 응답을 반환합니다.

으아악

go-redis 평가 함수는 항목 배치를

로 반환합니다.
1) val1
2) val2

Solution

redis는 lua 테이블 배열을 resp2 배열로 반환합니다. 그러면 go 클라이언트는 해당 응답을 go 기본 유형에 매핑합니다. go-redis 관련 문서는 lua 및 go 유형에서 찾을 수 있습니다.

간단히 말하면 Lua 테이블은 대량 응답에 매핑되는 반면 Go 클라이언트는 이를 인터페이스 조각에 매핑합니다. []interface{}.

go-redis 脚本 runeval 都返回 *cmd。您可以使用此类型的方法来检索 go 类型的输出。 result 给出 (interface{}, error),您可以键入断言任何您想要的内容,否则 stringslice 是一个方便的 getter,可以立即检索 []string runeval 스크립트 모두 *cmd를 반환합니다. 이 유형의 메소드를 사용하여 go 유형 출력을 검색할 수 있습니다. 결과 (인터페이스{}, 오류)가 주어지면 원하는 대로 어설션을 입력할 수 있습니다. 그렇지 않으면 stringslice

[]string을 즉시 검색할 수 있는 편리한 getter입니다.

따라서 다음과 같습니다:

으아악 값이 실제로 모두 문자열이 아닌 경우 slice 获取 []interface{}슬라이스

를 사용하여 🎜슬라이스를 가져온 다음 요소를 개별적으로 검사합니다. 🎜

위 내용은 go-redis Lua 스크립트가 배열을 반환할 때 Eval func 반환 값 유형의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제