gpt4 book ai didi

scala - 在 Scala 中使用带有 Int 的 "or"运算符

转载 作者:行者123 更新时间:2023-12-01 09:53:00 24 4
gpt4 key购买 nike

我需要将数据拆分成列。空格必须分布在最后几列中。因此,如果我有四个元素和三列,则这些列将包含这些元素数:2、1 和 1。

我需要知道有多少列将被填满。答案是:

val full = data.length % NUMBER_OF_COLUMNS

问题在于项目数是列数的倍数,这将返回零,这不是我想要的。所以我可以做:

val full = if (data.length % NUMBER_OF_COLUMNS == 0) NUMBER_OF_COLUMNS else 
data.length % NUMBER_OF_COLUMNS

这行得通,但感觉不是很“像 Scala”。这绝对是冗长和笨拙的,余数操作需要存储或执行两次。 (在这里,我选择了后者。)

有没有更好的办法?

在 Python 中,我所做的基本上是将 or 运算符与 Int 一起使用,如下所示:

full = len(data) % NUMBER_OF_COLUMNS or NUMBER_OF_COLUMNS

完成。但我想不出 Scala 中有类似的东西。它不存在还是我根本没有看到它?

最佳答案

像这样使用模式匹配

len % nCols match {
case 0 => nCols
case v => v
}

请注意,第二个模式匹配任何(非零)值并提供已计算的模值。

关于scala - 在 Scala 中使用带有 Int 的 "or"运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34209752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com