在 Scala 2 中,我有一個像這樣的元組:
val direction = (2,3)
這個值direction我想乘以一個Int因子f以獲得一個新的元組
(2 * f, 3 * f)
所以如果f=4我在尋找結果(8,12)。
我嘗試了明顯的候選人*:
(2,3) * f
但*似乎不是為這些型別設計的。
uj5u.com熱心網友回復:
還有:TupleN_productIterator
(1,2,3,4,5)
.productIterator
.map { case n: Int => n * 2 }
.toList
這不會回傳另一個元組,但可以讓您輕松迭代所有元素,而無需添加任何新庫。
productIterator回傳Iterator[Any],所以你必須使用模式匹配。
uj5u.com熱心網友回復:
這個怎么樣?
// 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)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/455950.html
