Estoy realmente confundido con las formas en que creamos una matriz en Swift. ¿Podría decirme cuántas formas de crear una matriz vacía con algún detalle?
Estoy realmente confundido con las formas en que creamos una matriz en Swift. ¿Podría decirme cuántas formas de crear una matriz vacía con algún detalle?
Respuestas:
Aqui tienes:
var yourArray = [String]()
Lo anterior también funciona para otros tipos y no solo para cadenas. Es solo un ejemplo.
Agregarle valores
¡Supongo que eventualmente querrás agregarle un valor!
yourArray.append("String Value")
O
let someString = "You can also pass a string variable, like this!"
yourArray.append(someString)
Agregar insertando
Una vez que tenga algunos valores, puede insertar nuevos valores en lugar de agregarlos. Por ejemplo, si desea insertar nuevos objetos al comienzo de la matriz (en lugar de agregarlos al final):
yourArray.insert("Hey, I'm first!", atIndex: 0)
O puede usar variables para hacer que su inserción sea más flexible:
let lineCutter = "I'm going to be first soon."
let positionToInsertAt = 0
yourArray.insert(lineCutter, atIndex: positionToInsertAt)
Es posible que eventualmente desee eliminar algunas cosas
var yourOtherArray = ["MonkeysRule", "RemoveMe", "SwiftRules"]
yourOtherArray.remove(at: 1)
Lo anterior funciona muy bien cuando sabe en qué parte de la matriz está el valor (es decir, cuando conoce su valor de índice). Como los valores del índice comienzan en 0, la segunda entrada estará en el índice 1.
Eliminar valores sin conocer el índice
¿Pero y si no lo haces? ¿Qué sucede si yourOtherArray tiene cientos de valores y todo lo que sabe es que desea eliminar el igual a "RemoveMe"?
if let indexValue = yourOtherArray.index(of: "RemoveMe") {
yourOtherArray.remove(at: indexValue)
}
¡Esto debería ayudarte a comenzar!
var myArr1 = [AnyObject]()
puede almacenar cualquier objeto
var myArr2 = [String]()
solo puede almacenar cadenas
Swift 3
Hay tres (3) formas de crear una matriz vacía en Swift y siempre se prefiere la sintaxis abreviada .
Método 1: sintaxis abreviada
var arr = [Int]()
Método 2: inicializador de matriz
var arr = Array<Int>()
Método 3: matriz con una matriz literal
var arr:[Int] = []
Método 4: el crédito va a @BallpointBen
var arr:Array<Int> = []
var arr: Array<Int> = []
. [T]
es solo una abreviatura deArray<T>
Hay 2 formas principales de crear / inicializar una matriz en Swift.
var myArray = [Double]()
Esto crearía una serie de Dobles.
var myDoubles = [Double](count: 5, repeatedValue: 2.0)
Esto crearía una matriz de 5 dobles, todos inicializados con el valor de 2.0.
var myDoubles = [Double](repeating: 2.0, count: 5)
- observe el cambio de orden de los parámetros y el cambio en la etiqueta de repeatedValue
arepeating
Si desea declarar una matriz vacía de tipo de cadena, puede hacerlo de 5 maneras diferentes: -
var myArray: Array<String> = Array()
var myArray = [String]()
var myArray: [String] = []
var myArray = Array<String>()
var myArray:Array<String> = []
Matriz de cualquier tipo: -
var myArray: Array<AnyObject> = Array()
var myArray = [AnyObject]()
var myArray: [AnyObject] = []
var myArray = Array<AnyObject>()
var myArray:Array<AnyObject> = []
Matriz de tipo entero: -
var myArray: Array<Int> = Array()
var myArray = [Int]()
var myArray: [Int] = []
var myArray = Array<Int>()
var myArray:Array<Int> = []
Aquí hay algunas tareas comunes en Swift 4 que puede usar como referencia hasta que se acostumbre a las cosas.
let emptyArray = [String]()
let emptyDouble: [Double] = []
let preLoadArray = Array(repeating: 0, count: 10) // initializes array with 10 default values of the number 0
let arrayMix = [1, "two", 3] as [Any]
var arrayNum = [1, 2, 3]
var array = ["1", "two", "3"]
array[1] = "2"
array.append("4")
array += ["5", "6"]
array.insert("0", at: 0)
array[0] = "Zero"
array.insert(contentsOf: ["-3", "-2", "-1"], at: 0)
array.remove(at: 0)
array.removeLast()
array = ["Replaces all indexes with this"]
array.removeAll()
for item in arrayMix {
print(item)
}
for (index, element) in array.enumerated() {
print(index)
print(element)
}
for (index, _) in arrayNum.enumerated().reversed() {
arrayNum.remove(at: index)
}
let words = "these words will be objects in an array".components(separatedBy: " ")
print(words[1])
var names = ["Jemima", "Peter", "David", "Kelly", "Isabella", "Adam"]
names.sort() // sorts names in alphabetical order
let nums = [1, 1234, 12, 123, 0, 999]
print(nums.sorted()) // sorts numbers from lowest to highest
La matriz en swift se escribe como ** Array <Element> **, donde Element es el tipo de valores que la matriz puede almacenar.
La matriz se puede inicializar como:
let emptyArray = [String]()
Muestra que es una matriz de tipo cadena
Se infiere que el tipo de la variable emptyArray es [String] del tipo del inicializador.
Para crear la matriz de tipo cadena con elementos
var groceryList: [String] = ["Eggs", "Milk"]
groceryList se ha inicializado con dos elementos
La variable groceryList se declara como "una matriz de valores de cadena" , escrita como [String]. Esta matriz particular ha especificado un tipo de valor de String, solo puede almacenar valores de String.
Hay varias propiedades de la matriz como:
- Para verificar si la matriz tiene elementos (si la matriz está vacía o no)
Propiedad isEmpty (booleana) para verificar si la propiedad count es igual a 0:
if groceryList.isEmpty {
print("The groceryList list is empty.")
} else {
print("The groceryList is not empty.")
}
- Agregar elementos (agregar) en la matriz
Puede agregar un nuevo elemento al final de una matriz llamando al método append (_ :) de la matriz:
groceryList.append("Flour")
groceryList ahora contiene 3 artículos.
Alternativamente, agregue una matriz de uno o más elementos compatibles con el operador de asignación de suma (+ =):
groceryList += ["Baking Powder"]
groceryList ahora contiene 4 artículos
groceryList += ["Chocolate Spread", "Cheese", "Peanut Butter"]
groceryList ahora contiene 7 artículos
Según Swift 5
// An array of 'Int' elements
let oddNumbers = [1, 3, 5, 7, 9, 11, 13, 15]
// An array of 'String' elements
let streets = ["Albemarle", "Brandywine", "Chesapeake"]
// Shortened forms are preferred
var emptyDoubles: [Double] = []
// The full type name is also allowed
var emptyFloats: Array<Float> = Array()
puede eliminar el contenido de la matriz pasando el índice de la matriz o puede eliminar todo
var array = [String]()
print(array)
array.append("MY NAME")
print(array)
array.removeFirst()
print(array)
array.append("MY NAME")
array.removeLast()
array.append("MY NAME1")
array.append("MY NAME2")
print(array)
array.removeAll()
print(array)
Swift 5
// Create an empty array
var emptyArray = [String]()
// Add values to array by appending (Adds values as the last element)
emptyArray.append("Apple")
emptyArray.append("Oppo")
// Add values to array by inserting (Adds to a specified position of the list)
emptyArray.insert("Samsung", at: 0)
// Remove elements from an array by index number
emptyArray.remove(at: 2)
// Remove elements by specifying the element
if let removeElement = emptyArray.firstIndex(of: "Samsung") {
emptyArray.remove(at: removeElement)
}
Se da una respuesta similar, pero eso no funciona para la última versión de Swift (Swift 5), así que aquí está la respuesta actualizada. ¡Espero eso ayude! :)
Iniciar una matriz con un recuento predefinido:
Array(repeating: 0, count: 10)
A menudo uso esto para las declaraciones de mapeo donde necesito un número específico de objetos simulados. Por ejemplo,
let myObjects: [MyObject] = Array(repeating: 0, count: 10).map { _ in return MyObject() }
Compatible con: Xcode 6.0.1+
Puede crear una matriz vacía especificando el tipo de Elemento de su matriz en la declaración.
Por ejemplo:
// Shortened forms are preferred
var emptyDoubles: [Double] = []
// The full type name is also allowed
var emptyFloats: Array<Float> = Array()
Ejemplo de la página del desarrollador de Apple (matriz):
Espero que esto ayude a cualquiera que se encuentre con esta página.