Как работает (тип) в го - PullRequest
0 голосов
/ 24 мая 2018
func test(value interface{}) {
    if res, ok := value.(string); ok {
        fmt.Println(res)
    }
}

как можно подтвердить тип значения?Я не нашел ничего в структуре может представлять тип.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 24 мая 2018

Под крышками интерфейсы реализованы в виде двух элементов: типа и значения.Значение, называемое динамическим значением интерфейса, является произвольным конкретным значением, а тип является значением значения.Для значения int 3 значение интерфейса схематически содержит (int, 3).

, например:

s:="123"
test(s)

, вы можете думать о value как (string, "123").поэтому, когда вы делаете res, ok:=value.(string), он может узнать res и ok.

...