Estou realmente confuso com a maneira como criamos uma matriz no Swift. Você poderia me dizer quantas maneiras de criar uma matriz vazia com alguns detalhes?
Então, o que devo fazer se quiser armazenar qualquer tipo de objeto na minha matriz?
Inuyasha
var myArray: [AnyObject] = []
Leo Dabus
Respostas:
296
Aqui está:
var yourArray =[String]()
O exemplo acima também funciona para outros tipos e não apenas para cadeias. É apenas um exemplo.
Adicionando valores a ele
Presumo que, eventualmente, você queira adicionar um valor a ele!
yourArray.append("String Value")
Ou
let someString ="You can also pass a string variable, like this!"
yourArray.append(someString)
Adicionar inserindo
Depois de ter alguns valores, você pode inserir novos valores em vez de anexar. Por exemplo, se você deseja inserir novos objetos no início da matriz (em vez de anexá-los ao final):
yourArray.insert("Hey, I'm first!", atIndex:0)
Ou você pode usar variáveis para tornar sua inserção mais flexível:
let lineCutter ="I'm going to be first soon."let positionToInsertAt =0
yourArray.insert(lineCutter, atIndex: positionToInsertAt)
Eventualmente, você pode querer remover algumas coisas
var yourOtherArray =["MonkeysRule","RemoveMe","SwiftRules"]
yourOtherArray.remove(at:1)
O exemplo acima funciona muito bem quando você sabe onde está o valor na matriz (ou seja, quando você conhece seu valor de índice). Como os valores do índice começam em 0, a segunda entrada estará no índice 1.
Removendo valores sem conhecer o índice
Mas e se você não? E se o yourOtherArray tiver centenas de valores e tudo o que você sabe é que deseja remover o igual a "RemoveMe"?
Não sei por que essa resposta tem mais votos. Ele responde a muitas perguntas que o OP nunca fez, mas fornece apenas uma maneira de criar uma matriz vazia, quando a pergunta 'por favor me diga quantas maneiras de criar uma matriz vazia'.
Obrigado, posso declarar assim `var myArray = [AnyObject] ()`?
Inuyasha
Sim, isso criará uma matriz de 'AnyObject' que permitirá que você coloque praticamente qualquer coisa lá. A menos que você precise de uma matriz como essa, seria melhor atribuir a ela um valor específico como 'var myArray = [String] ()'.
Aaron
Nota O Swift 4 alterou a sintaxe para inicializar a matriz com valores repetidos para o seguinte: var myDoubles = [Double](repeating: 2.0, count: 5)- observe a alteração da ordem dos parâmetros e a alteração no rótulo de repeatedValuepararepeating
HirdayGupta
8
Se você deseja declarar uma matriz vazia do tipo de sequência, pode fazer isso de 5 maneiras diferentes: -
var myArray:Array<String>=Array()var myArray =[String]()var myArray:[String]=[]var myArray =Array<String>()var myArray:Array<String>=[]
Matriz de qualquer tipo: -
var myArray:Array<AnyObject>=Array()var myArray =[AnyObject]()var myArray:[AnyObject]=[]var myArray =Array<AnyObject>()var myArray:Array<AnyObject>=[]
Matriz do tipo Inteiro: -
var myArray:Array<Int>=Array()var myArray =[Int]()var myArray:[Int]=[]var myArray =Array<Int>()var myArray:Array<Int>=[]
Aqui estão algumas tarefas comuns no Swift 4 que você pode usar como referência até se acostumar com as coisas.
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
Matriz em swift é escrita como ** Matriz <Elemento> **, em que Elemento é o tipo de valores que a matriz pode armazenar.
A matriz pode ser inicializada como:
let emptyArray = [String]()
Isso mostra que é uma matriz do tipo string
O tipo da variável emptyArray é inferido como [String] do tipo do inicializador.
Para Criando a matriz do tipo string com elementos
var groceryList: [String] = ["Eggs", "Milk"]
groceryList foi inicializado com dois itens
A variável groceryList é declarada como "uma matriz de valores de sequência" , escrita como [String]. Essa matriz específica especificou um tipo de valor de String, é permitido armazenar apenas valores de String.
Existem várias propriedades da matriz, como:
- Para verificar se a matriz possui elementos (se a matriz estiver vazia ou não)
Propriedade isEmpty (Boolean) para verificar se a propriedade count é igual a 0:
if groceryList.isEmpty {
print("The groceryList list is empty.")}else{
print("The groceryList is not empty.")}
- Acrescentando (adicionando) elementos na matriz
Você pode adicionar um novo item ao final de uma matriz chamando o método append (_ :) da matriz:
groceryList.append("Flour")
groceryList agora contém 3 itens.
Como alternativa, acrescente uma matriz de um ou mais itens compatíveis ao operador de atribuição de adição (+ =):
// 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)}
Uma resposta semelhante é fornecida, mas isso não funciona para a versão mais recente do Swift (Swift 5), então aqui está a resposta atualizada. Espero que ajude! :)
Respostas:
Aqui está:
O exemplo acima também funciona para outros tipos e não apenas para cadeias. É apenas um exemplo.
Adicionando valores a ele
Presumo que, eventualmente, você queira adicionar um valor a ele!
Ou
Adicionar inserindo
Depois de ter alguns valores, você pode inserir novos valores em vez de anexar. Por exemplo, se você deseja inserir novos objetos no início da matriz (em vez de anexá-los ao final):
Ou você pode usar variáveis para tornar sua inserção mais flexível:
Eventualmente, você pode querer remover algumas coisas
O exemplo acima funciona muito bem quando você sabe onde está o valor na matriz (ou seja, quando você conhece seu valor de índice). Como os valores do índice começam em 0, a segunda entrada estará no índice 1.
Removendo valores sem conhecer o índice
Mas e se você não? E se o yourOtherArray tiver centenas de valores e tudo o que você sabe é que deseja remover o igual a "RemoveMe"?
Isso deve começar!
fonte
pode armazenar qualquer objeto
pode armazenar apenas string
fonte
Você poderia usar
fonte
Swift 3
Existem três (3) maneiras de criar uma matriz vazia no Swift e a forma de sintaxe abreviada é sempre a preferida.
Método 1: sintaxe abreviada
Método 2: inicializador de matriz
Método 3: matriz com um literal de matriz
Método 4: o crédito vai para @BallpointBen
fonte
var arr: Array<Int> = []
.[T]
é apenas uma abreviação paraArray<T>
Existem 2 maneiras principais de criar / inicializar uma matriz rapidamente.
Isso criaria uma matriz de duplas.
Isso criaria uma matriz de 5 duplos, todos inicializados com o valor de 2,0.
fonte
var myDoubles = [Double](repeating: 2.0, count: 5)
- observe a alteração da ordem dos parâmetros e a alteração no rótulo derepeatedValue
pararepeating
Se você deseja declarar uma matriz vazia do tipo de sequência, pode fazer isso de 5 maneiras diferentes: -
Matriz de qualquer tipo: -
Matriz do tipo Inteiro: -
fonte
Aqui estão algumas tarefas comuns no Swift 4 que você pode usar como referência até se acostumar com as coisas.
fonte
Matriz em swift é escrita como ** Matriz <Elemento> **, em que Elemento é o tipo de valores que a matriz pode armazenar.
A matriz pode ser inicializada como:
let emptyArray = [String]()
Isso mostra que é uma matriz do tipo string
O tipo da variável emptyArray é inferido como [String] do tipo do inicializador.
Para Criando a matriz do tipo string com elementos
var groceryList: [String] = ["Eggs", "Milk"]
groceryList foi inicializado com dois itens
A variável groceryList é declarada como "uma matriz de valores de sequência" , escrita como [String]. Essa matriz específica especificou um tipo de valor de String, é permitido armazenar apenas valores de String.
Existem várias propriedades da matriz, como:
- Para verificar se a matriz possui elementos (se a matriz estiver vazia ou não)
Propriedade isEmpty (Boolean) para verificar se a propriedade count é igual a 0:
- Acrescentando (adicionando) elementos na matriz
Você pode adicionar um novo item ao final de uma matriz chamando o método append (_ :) da matriz:
groceryList agora contém 3 itens.
Como alternativa, acrescente uma matriz de um ou mais itens compatíveis ao operador de atribuição de adição (+ =):
groceryList agora contém 4 itens
groceryList agora contém 7 itens
fonte
Conforme Swift 5
fonte
você pode remover o conteúdo da matriz passando o índice da matriz ou remover todos
fonte
Swift 5
Uma resposta semelhante é fornecida, mas isso não funciona para a versão mais recente do Swift (Swift 5), então aqui está a resposta atualizada. Espero que ajude! :)
fonte
Iniciando uma matriz com uma contagem predefinida:
Array(repeating: 0, count: 10)
Costumo usar isso para mapear instruções em que preciso de um número especificado de objetos simulados. Por exemplo,
let myObjects: [MyObject] = Array(repeating: 0, count: 10).map { _ in return MyObject() }
fonte
Compatível com: Xcode 6.0.1+
Você pode criar uma matriz vazia especificando o tipo de elemento da sua matriz na declaração.
Por exemplo:
Exemplo da página de desenvolvedor da Apple (Matriz):
Espero que isso ajude alguém que tropeça nesta página.
fonte