如何检查接口是golang中的map [string]字符串

时间:2016-11-02 16:22:28

标签: go reflection

我想检查输出变量是否为map [string]字符串。 输出应该是map [string]字符串,它应该是ptr。

我检查了ptr值。但是我不知道如果是字符串也不知道如何检查地图的关键字。

  抱歉我的英文不好

import (
    "fmt"
    "reflect"
)

func Decode(filename string, output interface{}) error {
    rv := reflect.ValueOf(output)
    if rv.Kind() != reflect.Ptr {
        return fmt.Errorf("Output should be a pointer of a map")
    }
    if rv.IsNil() {
        return fmt.Errorf("Output in NIL")
    }
    fmt.Println(reflect.TypeOf(output).Kind())
    return nil
}

1 个答案:

答案 0 :(得分:11)

你根本不必使用反射。一个简单的类型断言就足够了;

task<void> MainPage::OnNavigatedTo(NavigationEventArgs^ e)
{
    auto my_data_file = co_await Windows::ApplicationModel::Package::Current->InstalledLocation->GetFileAsync("samples.txt");
}