說,我有一個數組[20, 2, 3]
我怎樣才能乘以這個數組的每個Int值在Swift中?
所以2個數組變成[40, 4, 6]
,3個數組變成[60, 6, 9]
等等?如何將數組中的每個Int值與Swift中的常量相乘?
2
A
回答
10
您可以使用.map()
:
let values = [20, 2, 3]
let doubles = values.map { $0 * 2 }
let triples = values.map { $0 * 3 }
如果你想要做的更新就地:
var values = [20, 2, 3]
values.enumerate().forEach { index, value in
values[index] = value * 2
}
// values is now [40, 4, 6]
1
您可以使用一個for循環。
var array = [20, 2, 3]
let multiplier = 2
for i in 0...array.count - 1{
array[i] = array[i] * multiplier
}
4
map
絕對是一個很好的路要走 - 但如果你想,你在你的問題問的語法「2×陣列變成...」,你可以重載*
操作。
如果數組的元素是可多項式和與標量相同的類型,這將允許您通過標量內聯乘數組。
protocol Multipliable {
func *(lhs:Self, rhs:Self) -> Self
}
// add any additional types that you want to be multipliable here
extension Int:Multipliable {}
extension Double:Multipliable {}
extension Float:Multipliable {}
// map through the array elements, multiplying each by the rhs argument
func *<T:Multipliable>(lhs:[T], rhs:T) -> [T] {
return lhs.map {$0 * rhs}
}
// use an inout argument in order to multiply an array in-place
func *=<T:Multipliable>(inout lhs:[T], rhs:T) {
lhs = lhs*rhs
}
然後,您可以使用它像這樣:
let yourArray = [2, 3, 4]
var arr = yourArray * 4 // arr = [8, 12, 16]
arr *= 3 // arr = [24, 36, 48]
相關問題
- 1. 如何將整數與數組中的值相乘?
- 2. 如何將整數或double與數組中的值相乘?
- 3. 將arraylist中的每個數字相乘
- 4. 在陣列數組中,我如何將每個值乘以不同的乘數
- 5. 將微調值與數組值相乘
- 6. 將數組中的每個元素與第二個數組中的每個元素相乘
- 7. 將一個數組中的每個元素與另一個數組的每個元素相乘的方式?
- 8. 將現有數組中的每個第3個元素相乘
- 9. 將文本框中的數字與數量值相乘
- 10. 如何將每個文檔的數量乘以一個值?
- 11. 如何將int數組賦給Swift中對象數組的相應屬性?
- 12. 如何使用PHP輕鬆地將數組中的每個項目相乘?
- 13. 如何乘以Php中相似鍵的數值數組值?
- 14. 如何將每行與sas中另一個矩陣元素的每行相乘?
- 15. 如何將每行與matlab中另一個矩陣元素的每行相乘?
- 16. 將int數組中的每個值插入數據庫 - Java
- 17. python:如何將列表中的每個值與另一個列表中的所有值相乘
- 18. 如何將RDD中的每一行與對方相乘?
- 19. 在swift中乘以int
- 20. 將數組與標量相乘並添加到VBA中
- 21. 如何互相乘以未知數量的php數組值?
- 22. Int與Swift中的整數
- 23. 如何使用數組#每個元素相乘數組?
- 24. 如何將jQuery滑塊值與定義的變量相乘?
- 25. Swift - 兩個UITextFeild的值相乘
- 26. 如何將多個不相關的int值添加到數組
- 27. 如何將SparseVector與Breeze中的標量相乘?
- 28. 如何將PySpark數據幀的每個非字符串列與浮點常量分開或相乘?
- 29. 如何將JSON數組值賦給Swift 3.0中的變量?
- 30. 如何在pandas中將列的值與另一列的值相除/相乘?