出现以下错误
不能将'“ No 3A4”'(类型字符串)用作分配中的* string类型
如何为查询添加默认值,而不返回行,因此无法使用row.Scan()函数,下面的示例代码。
func (orders *Orders) getOrderStatus() {
var err error
for _, order := range *orders {
row := db.QueryRow("SELECT status FROM mss_orders WHERE externalorderkey = ? ORDER BY tipo ASC LIMIT 1", order.PoNumber)
err = row.Scan(&order.Status)
if err != nil {
&order.Status = "No 3A4" <----- How can I do this?
}
fmt.Printf("%+v\n", order)
}
}
答案 0 :(得分:0)
基于该错误,我们知道&order.Status
的类型为*string
。但是,您正在尝试为其分配类型为string
的值。您可以改为指向字符串:
str := "No 3A4"
&order.Status = &str
或者您可以直接分配订单。状态:
order.Status = "No 3A4"
答案 1 :(得分:0)
由于字段的类型为*string
,因此必须为字符串分配一个指针。那不可能单行完成:
s := "No 3A4"
order.Status = &s
或者更改order.Status指向的值:
order.Status = new(string)
*order.Status = "No 3A4"