java有自动拆装箱,所以可以避开默认值的影响(js和python这些解释性语言也没这个问题),看了go的一些orm和参数校验框架,orm使用各种方式来避免默认值的影响,参数校验框架如果前端传的参数和默认值一样直接就验证不通过(gin的validator).....,真的太难受了
默认值这个是知道的(java基本数据类型和go差不多,但是java提供了包装数据类型),默认值会存在我上面说的一些问题,但是go或go的框架目前没有能完全解决默认值的一些影响,尤其是go web或者rpc中,传没传参数和没传参数直接默认值还是区别很大的
#12
更多评论
1楼 <a href="/user/jarlyyn" title="@jarlyyn">@jarlyyn</a> 我现在想把基本数据类型都用string,比如整型0用"0",布尔用"true"和"false",使用的时候再转化为所需类型,这样就可以验证是否传了参数,但是这样就会有一个问题,参数类型合法性就需要我手动校验了,少了还好,一旦参数有比较多的非string类型,就需要大篇幅的校验类型代码,调用方也需要对参数进行处理
#2