1.
type Base struct {
Id int `PK`
CreatedAt time.Time
UpdatedAt time.Time
SyncedAt time.Time
}
2.
type Note struct {
Base
Title string
Body string
}
3.
var note models.Note
note.Title = "First term"
note.Body = "body goes here!"
note.CreatedAt = time.Now()
fmt.Println(note)
return c.RenderJson(note)
结果:
{
"Title": "First term",
"Body": "body goes here!"
}
匿名字段 CreatedAt 不能 序列化
解决办法,装go1.1后,就可以如预期般解析了。
{
"Id": 0,
"CreatedAt": "2013-04-06T18:34:30.048450794+08:00",
"UpdatedAt": "0001-01-01T00:00:00Z",
"SyncedAt": "0001-01-01T00:00:00Z",
"Title": "First term",
"Body": "body goes here!"
}
相关推荐
2. 匿名字段:结构体中可以包含其他类型的实例,无需指定类型名。 3. 方法集:一个类型的所有方法构成其方法集。 4. 表达式:方法调用可以作为表达式的一部分。 六、接口 1. 接口定义:一组方法签名的集合,定义了...
字段标签用于为结构体字段提供额外的元数据,如用于序列化和反序列化的JSON字段。 #### 3.6 方法集 方法集是与特定类型关联的一组方法,通过方法集可以实现面向对象的编程风格。 #### 3.7 反射 反射允许程序在运行...
- **匿名字段**:在Go语言中,结构体可以包含匿名字段,这使得结构体可以嵌入其他结构体,实现继承的效果。 #### 七、并发 - **goroutine**:轻量级线程,可以在同一个Go进程中并发执行。 - **channel**:...
- 结构体:组合不同类型数据的复合类型,可以有嵌套结构体和匿名字段。 - 指针类型:指向变量内存地址的类型,允许间接访问和修改变量。 - 函数:可以作为参数传递和返回的高阶函数,支持多返回值和命名返回值。 ...
- **匿名字段**:在struct中可以使用匿名字段,通常与嵌入式类型一起使用。 - **方法集**:描述了某个类型拥有的所有方法。 - **表达式**:涉及到如何在表达式中使用方法。 6. **接口**: - **接口定义**:通过...
结构体(struct)是自定义类型的重要手段,可以包含匿名字段,并且可以定义方法。方法通过receiver指定接收者,可以实现面向对象编程的特性。接口(interface)定义了一组方法签名,实现了接口的类型必须提供相应的...
- **定义**: 字段标签用于提供额外的信息,如JSON序列化时使用的键名。 - **使用**: `type User struct { Name string `json:"name"`; Age int `json:"age"` }`。 #### 五、接口 **5.1 接口定义** - **定义**: ...
- **匿名字段**: 省略字段名称的结构体字段。 - **方法集**: 结构体类型的方法集合。 - **表达式**: Go语言表达式相关的内容。 #### 第6章 接口 - **接口定义**: 接口是一组方法签名的集合。 - **执行机制**: 接口...
#### 5.2 匿名字段 - **定义**: 结构体可以包含一个类型而无需为其指定名称。 - **使用**: 当需要将一个类型的方法暴露给另一个类型时非常有用。 #### 5.3 方法集 - **关联**: 一组方法可以关联到一个类型上。 - **...
- **不可变性**: Go 语言中的字符串一旦创建后就不能更改。 - **操作**: 提供了丰富的内置函数和方法来操作字符串,如 `len`, `fmt.Sprintf` 等。 #### 1.7 指针 - **定义**: 使用 `*T` 来定义指向类型 `T` 的指针...