我正在运行休息服务。API调用将填充以下已通过REST调用传递给用户的结构。
type struct Body{
param1 *string
param2 string
}
现在,我可以在处理程序函数中处理此请求。作为处理程序函数中错误处理的一部分,我将执行以下操作,
对于param1(这是一个指针),我需要检查指针是否不为nil并且字符串的长度不应为0。
对于param2,我只需要检查字符串的长度是否应该不为0
使用字符串对象将使我使用更少的检查并编写简洁的代码。那为什么大多数人在这种情况下使用指针。
使用Go语言时,声明没有初始值的变量将设置为零值,而不是null
值。
因此,当需要区分null
值和零值时,您需要使用pointers
,因为pointers
零值是nil
。 Golang不允许null
,其版本为nil(某些语言允许)。
示例示例:
在像MySql“”(空字符串)和0
这样的数据库中,对于字符串和int类型不是空值。如果需要在数据库中以不同的方式保存字符串“”(空字符串)和空值,则需要在请求正文结构中使用指针作为字符串。