我是一名新的 Go 程序员(来自 Java),我想重现一种在 Java 中易于使用的通用方式。
我想创建一些函数,允许我对 JSON 字符串执行解组,以避免代码重复。
这是我当前不起作用的代码:
type myStruct1 struct {
id string
name string
}
func (obj myStruct1) toString() string {
var result bytes.Buffer
result.WriteString("id : ")
result.WriteString(obj.id)
result.WriteString("\n")
result.WriteString("name : ")
result.WriteString(obj.name)
return result.String()
}
func main() {
content := `{id:"id1",name="myName"}`
object := myStruct1{}
parseJSON(content, object)
fmt.Println(object.toString())
}
func parseJSON(content string, object interface{}) {
var parsed interface{}
json.Unmarshal([]byte(content), &parsed)
}
Run Code Online (Sandbox Code Playgroud)
这段代码在运行时返回给我:
id :
name :
Run Code Online (Sandbox Code Playgroud)
你有什么主意吗 ?
谢谢
我正在测试 Go 的 GORM 库。我发现这个库特别有用,并且我一步一步地处理越来越复杂的概念。
我面临着级联运营管理的问题。
在某些问题上,创建者建议使用 AfterDelete。问题是:在 After/BeforeDelete 函数中,不存在嵌套项。
每个人都有实现这个的好方法吗?
这是我的代码(如果有人发现 Gorm 几乎可以工作):
package main
import (
"time"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/sqlite"
"fmt"
"github.com/satori/go.uuid"
)
type Company struct {
ID string `gorm:"primary_key;column:ID"`
Name string `sql:"size:255;unique;index" gorm:"column:Name"`
Employees []Employee // one-to-many relationship
Address Address // one-to-one relationship
}
func (u Company) TableName() string {
return "Company"
}
func (u Company) String() string {
return fmt.Sprintf("ID: %s | Name: %s | Employees: %v | Address: %v ", u.ID, u.Name, u.Employees, u.Address)
} …Run Code Online (Sandbox Code Playgroud)