说,我有一个数组[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中将列的值与另一列的值相除/相乘?