This is function takes two strings and returns struct or nil and I wrote a struct inside this function for use only this function.
type OrgFundingsDetailsFCT struct {
ID int `db:"id"`
OrgProfileID int `db:"org_profile_id"`
OrgID int `db:"org_id"`
RefID string `db:"ref_id"`
AmountUSD float64 `db:"amount_usd"`
FundingDate string `db:"funding_date"`
Status string `db:"status"`
Round string `db:"round"`
CreatedBy string `db:"created_by"`
}
func (s *Server) getCompareOrgFundingsByRefID(refID, status string) (*OrgFundingsDetailsFCT, error) {
type orgFunding struct {
RefID string `db:"ref_id"`
Status string `db:"status"`
}
var orgFundingsDetailsFCT OrgFundingsDetailsFCT
orgfunding := orgFunding{
RefID: refID,
Status: status,
}
const query = `SELECT id,
org_profile_id,
org_id,
ref_id,
amount_usd,
funding_date,
status,round,
created_by
FROM org_fundings
WHERE ref_id=:ref_id AND status=:status`
if err := s.db.NamedGet(&orgFundingsDetailsFCT, query, orgfunding); err == sql.ErrNoRows {
s.logger.Infof("empty rows! getCompareOrgFundingsByRefID #111 %+v", err)
return nil, nil
} else if err != nil {
s.logger.Infof("errors found! getCompareOrgFundingsByRefID#111 %+v", err)
return nil, err
}
return &orgFundingsDetailsFCT, nil
}
Now I'm checking if this function return nil
like this
if nil != orgFundingsRefIdPending{
// logic
}
But my question is if I check like that is it same or not?
if orgFundingsRefIdPending != nil{
//logic
}
If nil left side and check with my result is right side OR, my result is left side and check with nil is right side, Is it same? Does that mean the same thing happens if I put nil
on either side? also if I use struct on use only function is it valid thing?