Как привести интерфейс {} к карте в GO - PullRequest
0 голосов
/ 05 апреля 2020

Я новичок в Go и пытаюсь узнать, как привести интерфейс {} к карте. Вот пример того, что я пытаюсь реализовать.

Ссылка на игровую площадку: https://play.golang.org/p/3jhKlGKO46Z

Спасибо за помощь.

package main

import (
    "fmt"
)


func main() {

    Map := make(map[string]interface{})
    test(Map)

    for k,v := range Map {
        fmt.Println("key : %v Value : %v", k, v)
    }

}

func test(v interface{}) error{

    data := make(map[int]interface{})

    for i := 0; i < 10; i++ {
        data[i] = i * 5
    }

    for key,val := range data {
        //  fmt.Println("key : %v Value : %v", key, val)
        v[key] = val
    }

    return nil

1 Ответ

2 голосов
/ 05 апреля 2020

Go поддерживает утверждения типа для интерфейсов. Он обеспечивает конкретное значение, присутствующее в интерфейсе.

Этого можно добиться с помощью следующего кода.

    m, ok := v.(map[int]interface{})
    if ok {
      // use m
      _ = m
    }

Если заявленное значение не относится к данному типу, ok будет false

Если вы избежите второго возвращаемого значения, программа выдаст неверные утверждения c.

Я настоятельно рекомендую вам go - https://tour.golang.org

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...