Golang 類型轉換,斷言和顯式強制轉換


1 前言

類型轉換,可以用斷言(只能使用在interface{}類型轉換成其它類型)和顯式類型強制轉換(常規是用於基本類型)

2 代碼

//graphql-go
func(params graphql.ResolveParams) (interface{}, error) {
				//斷言使用在interface{}轉換,Args定義是map[string]interface{}
				id, _ := params.Args["id"].(int)
				name, nameOk := params.Args["name"].(string)
				info, infoOk := params.Args["info"].(string)
				price, priceOk := params.Args["price"].(float64)
				product := Product{}
				for i, p := range products {
					//顯式類型轉換
					if int64(id) == p.ID {
						if nameOk {
							products[i].Name = name
						}
						if infoOk {
							products[i].Info = info
						}
						if priceOk {
							products[i].Price = price
						}
						product = products[i]
						break
					}
				}
				return product, nil
			},                                                        

以下是本文無關說明,僅用來記錄。

id, _ := params.Args["id"].(int),
if int64(id) == p.ID
如果寫成
id, _ := params.Args["id"].(int64),
if id == p.ID
會出現刪除id:1時,顯示刪除id是0,無法真正刪除,原因是graphql內部定義相關(未深究)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM