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?
Entonces, ¿qué debo hacer si quiero almacenar algún tipo de objeto en mi matriz?
Inuyasha
var myArray: [AnyObject] = []
Leo Dabus
Respuestas:
296
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"?
No estoy seguro de por qué esta respuesta tiene más votos. Responde una gran cantidad de preguntas que el OP nunca hizo, pero solo proporciona una forma de crear una matriz vacía, cuando la pregunta fue 'por favor dígame cuántas formas de crear una matriz vacía'.
Gracias, ¿puedo declarar así `var myArray = [AnyObject] ()`?
Inuyasha
Sí, eso hará una serie de 'AnyObject' que le permitirá poner casi cualquier cosa allí. A menos que necesite una matriz como esta, sería mejor darle un valor específico como 'var myArray = [String] ()'.
Aaron
Note Swift 4 cambió la sintaxis para inicializar la matriz con valores repetidos a lo siguiente: var myDoubles = [Double](repeating: 2.0, count: 5)- observe el cambio de orden de los parámetros y el cambio en la etiqueta de repeatedValuearepeating
HirdayGupta
8
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 (+ =):
// 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()
// 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
iflet 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! :)
Respuestas:
Aqui tienes:
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!
O
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):
O puede usar variables para hacer que su inserción sea más flexible:
Es posible que eventualmente desee eliminar algunas cosas
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"?
¡Esto debería ayudarte a comenzar!
fuente
puede almacenar cualquier objeto
solo puede almacenar cadenas
fuente
Podrías usar
fuente
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
Método 2: inicializador de matriz
Método 3: matriz con una matriz literal
Método 4: el crédito va a @BallpointBen
fuente
var arr: Array<Int> = []
.[T]
es solo una abreviatura deArray<T>
Hay 2 formas principales de crear / inicializar una matriz en Swift.
Esto crearía una serie de Dobles.
Esto crearía una matriz de 5 dobles, todos inicializados con el valor de 2.0.
fuente
var myDoubles = [Double](repeating: 2.0, count: 5)
- observe el cambio de orden de los parámetros y el cambio en la etiqueta derepeatedValue
arepeating
Si desea declarar una matriz vacía de tipo de cadena, puede hacerlo de 5 maneras diferentes: -
Matriz de cualquier tipo: -
Matriz de tipo entero: -
fuente
Aquí hay algunas tareas comunes en Swift 4 que puede usar como referencia hasta que se acostumbre a las cosas.
fuente
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:
- 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 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 ahora contiene 4 artículos
groceryList ahora contiene 7 artículos
fuente
Según Swift 5
fuente
puede eliminar el contenido de la matriz pasando el índice de la matriz o puede eliminar todo
fuente
Swift 5
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! :)
fuente
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() }
fuente
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:
Ejemplo de la página del desarrollador de Apple (matriz):
Espero que esto ayude a cualquiera que se encuentre con esta página.
fuente