【最佳实践】多参数,用一个数组还是分开定义?
以往主要以 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 确实更加优雅!
综上,可按同类合并思维进行处理,就这么办吧 :)
打赏: 微信
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
既不应该用数组,也不应该允许一个函数有过多的(无名)参数。
1)可以传 record
2)现代语言大多支持具名参数,具名参数可以解决问题
PHP 的数组虽然随便,但是你传入的可以是 Class,如果是Class,IDE就能检测你传入的对象有没问题。当然了,归根究底还是 PHP 没有 TS 那样的语法糖
哈哈,总在定义变量的时候,纠结、犹豫……
笑死,我也经常会在编程中被这种小而多的小问题给折腾着
哈哈,我还在折腾 go…… 哎,赶紧睡觉去了(go struct 真香,够轻量、够直观)