我想检查两个结构是否相等,但有一些问题:
package main
import (
"fmt"
"reflect"
)
type T struct {
X int
Y string
Z []int
M map[string]int
}
func main() {
t1 := T{
X: 1,
Y: "lei",
Z: []int{1, 2, 3},
M: map[string]int{
"a": 1,
"b": 2,
},
}
t2 := T{
X: 1,
Y: "lei",
Z: []int{1, 2, 3},
M: map[string]int{
"a": 1,
"b": 2,
},
}
fmt.Println(t2 == t1)
//error - invalid operation: t2 == t1 (struct containing []int cannot be compared)
fmt.Println(reflect.ValueOf(t2) == …Run Code Online (Sandbox Code Playgroud) 如何在没有显式的情况下迭代结构中的字段并检查它们是否不为空?
我有一个示例结构
type Example struct {
Foo, Bar string
}
Run Code Online (Sandbox Code Playgroud)
我可以明确检查每个字段是否不是“”,但我不想这样做。有什么简单的方法可以完成我的需要吗?
该函数接受两个字符串并返回 struct 或 nil,我在该函数内编写了一个 struct 仅供该函数使用。
\ntype OrgFundingsDetailsFCT struct {\n ID int `db:"id"`\n OrgProfileID int `db:"org_profile_id"`\n OrgID int `db:"org_id"`\n RefID string `db:"ref_id"`\n AmountUSD float64 `db:"amount_usd"`\n FundingDate string `db:"funding_date"`\n Status string `db:"status"`\n Round string `db:"round"`\n CreatedBy string `db:"created_by"`\n}\nRun Code Online (Sandbox Code Playgroud)\nfunc (s *Server) getCompareOrgFundingsByRefID(refID, status string) (*OrgFundingsDetailsFCT, error) {\n type orgFunding struct {\n RefID string `db:"ref_id"`\n Status string `db:"status"`\n }\n\n var orgFundingsDetailsFCT OrgFundingsDetailsFCT\n\n orgfunding := orgFunding{\n RefID: refID,\n Status: status,\n }\n\n const query = `SELECT id,\n org_profile_id,\n org_id,\n ref_id,\n amount_usd,\n funding_date,\n …Run Code Online (Sandbox Code Playgroud)