Создать тип возврата в map[string]interface{}
.Поскольку ответ, возвращаемый из запроса GET
, имеет тип map[string]interface{}
, а не map[string]interface{}{}
, который является составным литералом.Таким образом, вы можете использовать его как
func getLatestTxs() map[string]interface{} {
fmt.Println("hello")
// function body code ....
return ret
}
Для этой строки
если я изменю map [string] interface {} {} на interface {}, никакой ошибки компиляции не будетподробнее.
Мы можем преобразовать что угодно в interface{}
, потому что это работает как обертка, которая может обернуть любой тип и сохранить базовый тип и его значение.Значение может быть получено с использованием утверждения типа для базового типа.Так что в вашем случае, когда вы используете интерфейс, он обернет значение map[string]interface{}
.Для получения значения необходимо набрать assert, как показано ниже.
func getLatestTxs() interface{} {
fmt.Println("hello")
// function code .....
//fmt.Println(ret["result"])
return ret
}
ret["result"].(interface{}).([]interface{})
вывести базовый map[string]interface{}
, чтобы получить значение одного объекта внутри результата
fmt.Println(ret["result"].(interface{}).([]interface{})[0].(map[string]interface{})["from"])