三種車輛型別Car是Motorcycle和Bicycle。三種狀態是Available和。ReservedSold
我想列印所有不是 Car 和不是的車輛的資訊,即不應 Sold列印已售出的汽車。換句話說,列印所有Motorcycle或的資訊Bicycle,其中任何狀態為Available,Reserved和Sold。如果它是 a Car,只要它是Availableor就仍然列印Reserved。
這些車輛是:
- 汽車 - 出售
- 汽車 - 可用
- 車 - 預留
- 自行車 - 出售
- 自行車 - 可用
- 自行車 - 預留
- 摩托車 - 出售
- 摩托車 - 有貨
- 摩托車 - 保留
我希望以下代碼可以列印除數字 1 之外的所有內容(汽車 - 已售)
我的代碼:
for _, v := range results {
if v.Type != "Car" && v.Status != "Sold" { // && does not work but || works
resp = append(resp, &VehicleInfo {
ID: v.Id,
Brand: v.Brand,
Type: v.Type,
Status: v.Sold,
})
}
}
fmt.Println(resp)
當我使用 時AND (&&),Println結果很奇怪,它輸出 5、6、8、9。但是,當我切換到 時OR (||),它會列印出我想要的內容,即除了 1(已售車)之外的所有內容,它是所有Motorcycle(任何狀態),所有Bicycle(任何狀態)和所有Car是要么Available或Reserved。
這里有什么問題?我認為 usingAND (&&)是正確的答案,但事實并非如此。
uj5u.com熱心網友回復:
您的問題陳述......不清楚。該宣告
我想列印所有不是
Car和不是的車輛的資訊Sold,...
但問題陳述的其余部分:
... 即不應列印已售出的汽車。換句話說,列印所有摩托車或自行車的資訊,包括可用、已保留和已售之間的任何狀態。如果它是汽車,只要它是可用的或保留的,仍然會列印。
表示您要過濾掉(排除)已售出的汽車。
最簡單的方法是這樣的:
for _, v := range results {
isSoldCar := v.Type == "Car" && v.Status == "Sold"
if isSoldCar {
continue
}
resp = append(resp, &VehicleInfo {
ID: v.Id,
Brand: v.Brand,
Type: v.Type,
Status: v.Sold,
})
}
或這個:
for _, v := range results {
isSoldCar := v.Type == "Car" && v.Status == "Sold"
if !isSoldCar {
resp = append(resp, &VehicleInfo {
ID: v.Id,
Brand: v.Brand,
Type: v.Type,
Status: v.Sold,
})
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/482631.html
上一篇:mysql如果存在則回傳值,否則回傳零(或任何要識別的東西)
下一篇:Python-如果在if內
