java有自动拆装箱,所以可以避开默认值的影响(js和python这些解释性语言也没这个问题),看了go的一些orm和参数校验框架,orm使用各种方式来避免默认值的影响,参数校验框架如果前端传的参数和默认值一样直接就验证不通过(gin的validator).....,真的太难受了
其实楼主可能不知道的是,编译型的语言变量都有默认值的。
go只不过遵从了这一惯例而已。
不过针对数据库ORM这块go的确欠缺一个特殊的NULL值。
其它语言是由这样的类型支持和处理的。
#11
更多评论
1楼 <a href="/user/jarlyyn" title="@jarlyyn">@jarlyyn</a> 我现在想把基本数据类型都用string,比如整型0用"0",布尔用"true"和"false",使用的时候再转化为所需类型,这样就可以验证是否传了参数,但是这样就会有一个问题,参数类型合法性就需要我手动校验了,少了还好,一旦参数有比较多的非string类型,就需要大篇幅的校验类型代码,调用方也需要对参数进行处理
#2