Условие оператора if не проверяет значение nil интерфейса
Я пытаюсь подтвердить в if
условие, если значение интерфейса nil
и это не так, я напечатал переменную и отображает <nil>
что должно быть правдой и войти в if
условие выписки.
У меня есть предопределенная карта под названием:
schema := make(map[interface{}]interface{})
и он заполняется методом, который получает структуру, я получаю поле структуры и его значение, используя отражение следующим образом:
schema := make(map[interface{}]interface{})
v := reflect.ValueOf(structureType)
for i := 0; i < v.NumField(); i++ {
schema[v.Type().Field(i).Name] = v.Field(i).Interface()
}
Затем я пытаюсь проверить, если целое число пусто:
if value, exist := schema["Age"]; exist {
fmt.Println(value)
if value == nil { // This condition is not being true even if the value = nil
logSyntaxWriter(LogFileName, "Age field is empty.", yamlFileDirectory)
}
}
Почему условие не выполняется, даже если value
переменная nil
?