如何将元组或整数列表与 Scala 中的一个因子相乘
How to multiply a tuple or a list of integers with a factor in Scala
在 Scala 2 中,我有一个这样的元组:
val direction = (2,3)
这个值direction
我想乘以一个Int
因子f
以获得一个新的元组
(2 * f, 3 * f)
所以如果 f=4
我正在寻找结果 (8,12)
。
我尝试了明显的候选 *
:
(2,3) * f
但 *
似乎不是为这些类型设计的。
这个怎么样?
// FUNCTION
object TupleProduct extends App {
implicit class TupleProduct(tuple2: (Int, Int)) {
def * : Int => (Int, Int) = (f: Int) => {
(tuple2._1 * f, tuple2._2 * f)
}
}
val direction = (2, 3)
print(direction * 4)
}
// METHOD
object TupleProduct extends App {
implicit class TupleProduct(tuple2: (Int, Int)) {
def *(f: Int):(Int, Int) = {
(tuple2._1 * f, tuple2._2 * f)
}
}
val direction = (2, 3)
print(direction * 4)
}
还有TupleN
有productIterator
:
(1,2,3,4,5)
.productIterator
.map { case n: Int => n * 2 }
.toList
这不是 return 另一个元组,但可以让您轻松迭代所有元素,而无需添加任何新库。
productIterator
returns Iterator[Any]
所以你必须使用模式匹配。
在 Scala 2 中,我有一个这样的元组:
val direction = (2,3)
这个值direction
我想乘以一个Int
因子f
以获得一个新的元组
(2 * f, 3 * f)
所以如果 f=4
我正在寻找结果 (8,12)
。
我尝试了明显的候选 *
:
(2,3) * f
但 *
似乎不是为这些类型设计的。
这个怎么样?
// FUNCTION
object TupleProduct extends App {
implicit class TupleProduct(tuple2: (Int, Int)) {
def * : Int => (Int, Int) = (f: Int) => {
(tuple2._1 * f, tuple2._2 * f)
}
}
val direction = (2, 3)
print(direction * 4)
}
// METHOD
object TupleProduct extends App {
implicit class TupleProduct(tuple2: (Int, Int)) {
def *(f: Int):(Int, Int) = {
(tuple2._1 * f, tuple2._2 * f)
}
}
val direction = (2, 3)
print(direction * 4)
}
还有TupleN
有productIterator
:
(1,2,3,4,5)
.productIterator
.map { case n: Int => n * 2 }
.toList
这不是 return 另一个元组,但可以让您轻松迭代所有元素,而无需添加任何新库。
productIterator
returns Iterator[Any]
所以你必须使用模式匹配。