Ruby中为版本号字符串设置默认数组值的优雅实现方法
Ruby版本号字符串转固定三段数组的优雅实现
最符合Ruby社区习惯的极简实现思路是拆分后补全默认值再截断取固定长度,比原实现可读性高很多,代码量也更短:
如果你需要保持分段为字符串类型(和你现有实现的输出一致):
(version_string.split('.') + ['0', '0', '0']).take(3)
实现逻辑:不管拆分后得到1/2/3个分段,拼接三个默认'0'之后总长度最少为4,取前3位刚好可以丢弃多余的默认值,同时自动补全缺失的分段,完美覆盖x/x.y/x.y.z三类输入场景。
如果你需要直接转成整数类型的版本号分段(日常开发更常用的场景):
(version_string.split('.').map(&:to_i) + [0, 0, 0]).take(3)
可选实现:原地填充
如果更偏好原地修改的写法,也可以用Array#fill方法实现,逻辑更直白:
segments = version_string.split('.') segments.fill('0', segments.length...3) # 从当前长度的位置开始填充0,直到总长度为3
内容的提问来源于stack exchange,提问作者Nick Hyland
相关产品推荐
相关产品推荐

