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内部定义相关(未深究)

相关文章:

  • 2021-05-24
  • 2022-12-23
  • 2022-02-23
  • 2021-08-16
  • 2021-11-16
  • 2022-12-23
  • 2021-10-02
猜你喜欢
  • 2021-06-08
  • 2022-12-23
  • 2021-08-03
  • 2021-09-28
  • 2022-12-23
  • 2021-11-26
  • 2021-11-12
相关资源
相似解决方案