以往主要以 PHP 为主力语言,有过被参数多的问题所困扰,近期 Go 写多了后,有一些感悟。

先说结论

分类合并,同类参数合并为数组(Go 中定义为 struct 结构体),不同类分开定义。

例:
参数 school_name,school_address,study_name,study_gender,需调用函数做逻辑处理。

伪代码:

函数定义:
function anonymous(school, study);

调用点:
school = [school_name, school_address];
study = [study_name, study_gender];
anonymous(school, study);

以自己过往经历。

PHP 中这个场景都平铺开来字段很多,参数位会变得难以阅读也不容易扩展,这时就想定义成数组,可是数组无法直观知道可入参字段和类型,当然,这个问题不用 array 可以定义 Class,但这种情况都定义 Class 又感觉太重了。

Go 用结构体没有数组黑盒烦恼,这点 Go 确实更加优雅!

综上,可按同类合并思维进行处理,就这么办吧 :)