Golang 中国

问题1:
数据库主键肯定是uint的, 而我看了大量案例,都使用的是struct{Id int}, 诚然int足够用, 但这种写法是否不恰当?

问题2: 数字转换为字符串是非常常用的函数, 下面这种写法使用interface{}做参数, 然后断言, 这样写是否影响性能呢?
`

func String(ii interface{}) (str string)
    switch i :=ii.(type) {
    case in
        str, _ = strconv.FormatInt(i, 0)
    case int64:
        str, _ = strconv.FormatInt(i, 64)
    case int8:
        str, _ = strconv.FormatInt(i, 8)
    case uint:
        str, _ = strconv.FormatUint(i, 0)
    case uint64:
        str, _ = strconv.FormatUint(i, 64)
    case uint8:
        str, _ = strconv.FormatUint(i, 8)
    ...............
    default:
        panic("String()的参数类型暂不支持, 请扩充!")
    }
    return str
}`

aaaaaaaa 于 2018-04-08 13:25 修改
1 回复
coldwater
#1 coldwater • 2018-05-02 23:35

没啥影响,interface{} 实际上就是一个结构体,有两个字段,值,类型,断言就比较一下类型是非相等,有多大开销呢?

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。