Merge commit 'd5a9807cb52a9106ab0eb0e53081a204d709209b' into _ja
This commit is contained in:
@@ -64,7 +64,7 @@ beedb的New函数实际上应该有两个参数,第一个参数标准接口的
|
||||
>注意一点,beedb针对驼峰命名会自动帮你转化成下划线字段,例如你定义了Struct名字为`UserInfo`,那么转化成底层实现的时候是`user_info`,字段命名也遵循该规则。
|
||||
|
||||
## 插入数据
|
||||
下面的代码演示了如何插入一条记录,可以看到我们操作的是strcut对象,而不是原生的sql语句,最后通过调用Save接口将数据保存到数据库。
|
||||
下面的代码演示了如何插入一条记录,可以看到我们操作的是struct对象,而不是原生的sql语句,最后通过调用Save接口将数据保存到数据库。
|
||||
|
||||
var saveone Userinfo
|
||||
saveone.Username = "Test Add User"
|
||||
|
||||
@@ -104,7 +104,7 @@ MongoDB是一个高性能,开源,无模式的文档型数据库,是一个
|
||||
fmt.Println("Phone:", result.Phone)
|
||||
}
|
||||
|
||||
我们可以看出来mgo的操作方式和beedb的操作方式几乎类似,都是基于strcut的操作方式,这个就是Go Style。
|
||||
我们可以看出来mgo的操作方式和beedb的操作方式几乎类似,都是基于struct的操作方式,这个就是Go Style。
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ XML本质上是一种树形的数据格式,而我们可以定义与之匹配
|
||||
}
|
||||
|
||||
|
||||
上面的例子中,将xml文件解析成对应的strcut对象是通过`xml.Unmarshal`来完成的,这个过程是如何实现的?可以看到我们的struct定义后面多了一些类似于`xml:"serverName"`这样的内容,这个是strcut的一个特性,它们被称为 strcut tag,它们是用来辅助反射的。我们来看一下`Unmarshal`的定义:
|
||||
上面的例子中,将xml文件解析成对应的struct对象是通过`xml.Unmarshal`来完成的,这个过程是如何实现的?可以看到我们的struct定义后面多了一些类似于`xml:"serverName"`这样的内容,这个是struct的一个特性,它们被称为 struct tag,它们是用来辅助反射的。我们来看一下`Unmarshal`的定义:
|
||||
|
||||
func Unmarshal(data []byte, v interface{}) error
|
||||
|
||||
@@ -188,8 +188,8 @@ Go语言的反射机制,可以利用这些tag信息来将来自XML文件中的
|
||||
|
||||
- 如果v是struct,XMLName的tag中定义的名称
|
||||
- 类型为xml.Name的名叫XMLName的字段的值
|
||||
- 通过strcut中字段的tag来获取
|
||||
- 通过strcut的字段名用来获取
|
||||
- 通过struct中字段的tag来获取
|
||||
- 通过struct的字段名用来获取
|
||||
- marshall的类型名称
|
||||
|
||||
我们应如何设置struct 中字段的tag信息以控制最终xml文件的生成呢?
|
||||
|
||||
Reference in New Issue
Block a user