scala - 在Scala中以功能方式比较两个版本?
问题描述
Scala 中是否有一种惯用的、功能性的方式来比较两个可能具有不同长度的虚线版本字符串?
例如:
1.0 == 1.0.0
1.2.4 > 1.2
1.10 > 1.2
(Java 解决方案通常是非常命令式的)。
解决方案
有点相同,但没有递归:
version1.split("\\.")
.zipAll(version2.split("\\."), "0", "0")
.find {case(a, b) => a != b }
.fold(0) { case (a, b) => a.toInt - b.toInt }
另外,FWIW,我认为这是重复的,因为链接问题中接受的答案也很好地回答了这个问题。
推荐阅读
- typescript - 打字稿自定义属性名称
- javascript - 删除查询参数
- c++ - 获取基类向量的派生结构元素的模板类型
- java - 关闭挂钩代码未完全执行
- windows - 如何通过 USB 连接两台 Windows 计算机以在它们的虚拟串口之间进行通信?
- wix - WIX BootStapper 应该提示 Reboot 消息
- android - 如何在谷歌驱动器上创建文件夹错误代码 17 [分辨率已被用户取消]
- nunit - ServiceStack.XmlServiceClient 响应缺少默认值
- javascript - w3schools 模式不起作用
- for-loop - iOS Swift 如何为 For 循环 SKAction 使用完成处理程序