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?
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?
Respostas:
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"?
if let indexValue = yourOtherArray.index(of: "RemoveMe") {
yourOtherArray.remove(at: indexValue)
}
Isso deve começar!
var myArr1 = [AnyObject]()
pode armazenar qualquer objeto
var myArr2 = [String]()
pode armazenar apenas string
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
var arr = [Int]()
Método 2: inicializador de matriz
var arr = Array<Int>()
Método 3: matriz com um literal de matriz
var arr:[Int] = []
Método 4: o crédito vai para @BallpointBen
var arr:Array<Int> = []
var arr: Array<Int> = []
. [T]
é apenas uma abreviação paraArray<T>
Existem 2 maneiras principais de criar / inicializar uma matriz rapidamente.
var myArray = [Double]()
Isso criaria uma matriz de duplas.
var myDoubles = [Double](count: 5, repeatedValue: 2.0)
Isso criaria uma matriz de 5 duplos, todos inicializados com o valor de 2,0.
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 repeatedValue
pararepeating
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 (+ =):
groceryList += ["Baking Powder"]
groceryList agora contém 4 itens
groceryList += ["Chocolate Spread", "Cheese", "Peanut Butter"]
groceryList agora contém 7 itens
Conforme 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()
você pode remover o conteúdo da matriz passando o índice da matriz ou remover todos
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)
}
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! :)
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() }
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:
// Shortened forms are preferred
var emptyDoubles: [Double] = []
// The full type name is also allowed
var emptyFloats: Array<Float> = Array()
Exemplo da página de desenvolvedor da Apple (Matriz):
Espero que isso ajude alguém que tropeça nesta página.