¿Cómo multiplicar cada valor Int en una matriz por una constante en Swift?

Digamos que tengo una matriz [20, 2, 3]
¿Cómo puedo multiplicar cada valor Int de esta matriz en Swift?
Entonces 2 x array se convierte en [40, 4, 6] , 3 x array se convierte en [60, 6, 9] y así sucesivamente?

Puedes usar .map() :

 let values = [20, 2, 3] let doubles = values.map { $0 * 2 } let triples = values.map { $0 * 3 } 

Si desea hacer la actualización in situ:

 var values = [20, 2, 3] values.enumerate().forEach { index, value in values[index] = value * 2 } // values is now [40, 4, 6] 

map definitivamente es un buen path a seguir, aunque si desea get la syntax que solicitó en su pregunta " 2 x array becomes … ", podría sobrecargar el * operador.

Esto le permitirá multiplicar una matriz por un escalar en línea, si los elementos de la matriz son multiplicables y del mismo tipo que el escalar.

 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 } 

A continuación, puede usarlo así:

 let yourArray = [2, 3, 4] var arr = yourArray * 4 // arr = [8, 12, 16] arr *= 3 // arr = [24, 36, 48] 

Puedes usar un bucle for.

  var array = [20, 2, 3] let multiplier = 2 for i in 0...array.count - 1{ array[i] = array[i] * multiplier }