目录

Tyler 的个人博客

但行好事 莫问前程🚶

如何区别请求中的零值与零

在go语言中,对于没有赋值的信息,会默认给予一个零值。而int型零值正好等于0,因此在处理一些http请求时,容易产生无法区分读到的字段信息为0是零值还是传参为零。

这里提供两种简单的思路:

1、修改规定接收类型为string型。当前端如果没有传值进来,那么后端将解析得到 "" 。因为string型的零值为 "" ,所以我们只需要判断接收到的string型是否为空即可。若不为空,则将字符串转换为数字,即可得到传参为0或其他数字的情况。

2、仍保持接收类型为int型,修改使用指针去接收这个字段。通常情况下,我们往往直接在controller层将映射结构体解析后直接传递至service层进行业务处理。为了区分零值和0,我们可以在controller层先用指针去解析该字段。若解析后为nil,则表示请求中未传值,那么我们可以给这个字段赋予一个特殊的值,例如-1。如果本身该字段有值,那么将该指针解引用。经过这一层处理后,再将该字段传递至service层进行相关业务处理。

动态内容示例

作者:
地址:
发布日期: