为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 通过 sql.NullString 设置 reflect.Value

Golang 通过 sql.NullString 设置 reflect.Value

Go
一只甜甜圈 2023-03-07 16:43:56
如何通过 inData.SourceId(类型为 String)设置 item.SourceId(类型为 sql.NullString)?红色方块的代码不知道怎么写我reflect.ValueOf(&foo).Elem().Field(0).SetInt(321)在Using reflect 中发现,如何设置结构字段的值?. 有类似的东西SetInt吗sql.NullString?type InDataType struct {        Id          string          SourceId    string    }    type ItemType struct {        Id          string              SourceId    sql.NullString     }setField(item, inData, "SourceId")func setField(item interface{}, inData interface{}, fieldName string) {    // t := reflect.TypeOf(inData)    // fmt.Println(t)    itemValue := reflect.ValueOf(item).Elem().FieldByName(fieldName)    itemType := reflect.ValueOf(item).Elem().FieldByName(fieldName).Type().String()    fmt.Println(itemType, ",", itemValue)    inDataValue := reflect.ValueOf(inData).Elem().FieldByName(fieldName)    inDataType := reflect.ValueOf(inData).Elem().FieldByName(fieldName).Type().String()    fmt.Println(inDataType, ",", inDataValue)    if itemType == "sql.NullString" {        // itemValue = sql.NullString{String: inDataValue.Value().String(), Valid: inDataValue.String() != ""}    }}
查看完整描述

1 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

if itemType == "sql.NullString" {
    itemValue.Set(reflect.ValueOf(sql.NullString{String: inDataValue.String(), Valid: inDataValue.String() != ""}))
}


查看完整回答
反对 回复 2023-03-07
  • 1 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信