gpt4 book ai didi

go - 合并 2 个不同类型的结构

转载 作者:数据小太阳 更新时间:2023-10-29 03:23:13 27 4
gpt4 key购买 nike

我有两个结构。

  • EventForm 是用于解析请求的 POST 正文的结构。
  • EventTable 用于创建 MYSQL 表结构和查找/创建行。

我想将 EventFormEventTable 合并,这样像 ID 这样的字段就不能通过 POST 主体被覆盖.我无法将 EventForm 的类型转换为 EventTable,因为如果字段不是 100% 匹配,则无法将结构转换为不同的类型。所以我的问题是合并这两个结构的最佳方法是什么?如果无法合并这两个结构,我该如何最好地解决这个问题?

package models

import "time"

// EventTable table structure of "events"
type EventTable struct {
EventForm `xorm:"extends"`
ID int `xorm:"autoincr pk 'id'" json:"id"`
Created time.Time `xorm:"not null created" json:"created"`
Updated time.Time `xorm:"not null updated" json:"updated"`
}

// TableName table name of EventTable
func (u *EventTable) TableName() string {
return "events"
}

// EventForm the structure that is received via an API call
type EventForm struct {
Title string `xorm:"not null" json:"title" required:"true"`
Description string `xorm:"not null" json:"description" required:"true"`
Owner string `xorm:"not null" json:"owner" required:"true"`
Lat string `xorm:"not null" json:"lat" required:"true"`
Lng string `xorm:"not null" json:"lng" required:"true"`
}

最佳答案

我与@mkopriva 并没有完全理解问题所在。假设您正在从一些 API 调用中接收 EventForm

evtForm := GetSomeEventForm()
evtTable := &models.EventTable{ EventForm: evtForm, Created: time.Now() }
someORMProbably.Insert(evtTable)

关于go - 合并 2 个不同类型的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49439023/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com