stevewang

第 1556 号会员 /

回复了 haroldT 创建的主题: map 使用

你这代码都编译不过,不知道你想做什么。

回复了 haroldT 创建的主题: 在已有的struct添加新的数据类型

我没用过beego,你可以看看相关教程。
即使要求int作为主键我觉得问题也不大,主键可以使用自增长的int,业务逻辑的主键可以用唯一索引。

回复了 haroldT 创建的主题: 在已有的struct添加新的数据类型

Nesting Models (inline)

type SQLModel struct {
    Id       int       `beedb:"PK" sql:"id"`
    Created  time.Time `sql:"created"`
    Modified time.Time `sql:"modified"`
}
type User struct {
    SQLModel `sql:",inline"`
    Name     string `sql:"name" tname:"fn_group"`
    Auth     int    `sql:"auth"`
}
// the SQL table has the columns: id, name, auth, created, modified
// They are marshalled and unmarshalled automatically because of the inline keyword

我看beedb的文档,似乎使用sql:",inline"这个tag来支持嵌入式结构。

另外,我看作者说明beedb已经废弃了,应该改用Beego.orm。

回复了 haroldT 创建的主题: 在已有的struct添加新的数据类型

interface{}原先是map才能转换成map,reflect应该是可行的。
也许你可以自己定义一个struct扩展User:

type User struct {
    Age  int
    Name string
}
type User2 struct {
    User
    Class string
}

var user User
// fetch user from beedb
// ...
var user2 = User2{
    User:  user,
    Class: "MyClass",
}

然后把user2对象传递给本地序列化接口。
你最好把代码贴出来,才方便讨论,不然别人不知道你的具体问题。

回复了 pxllong 创建的主题: Go与python的chr转换问题

ASCII字符的有效范围是0~0x7f,因此0xff实际上不是一个合法的字符。
python代码不是print("%c", chr(0xFF)),而是print "%c" % chr(0xff),就会打印表示无效编码。

回复了 stevenldj 创建的主题: new(Interface{})有什么用?

i := *new(inf)var i inf效果是一样的,都是初始化一个接口变量,以后可以赋值指向接口的具体实现。

回复了 stevenldj 创建的主题: new(Interface{})有什么用?

interface{}是一个类型,为什么不允许实例化?不能实例化怎么实现反射和接口查询呢?

fmt包的Printf函数声明:
func Printf(format string, a ...interface{}) (n int, err error)