Я дійсно плутаюсь із способами створення масиву в Swift. Скажіть, будь ласка, скільки способів створити порожній масив з якоюсь деталлю?
Я дійсно плутаюсь із способами створення масиву в Swift. Скажіть, будь ласка, скільки способів створити порожній масив з якоюсь деталлю?
Відповіді:
Ось вам:
var yourArray = [String]()
Сказане також працює для інших типів, а не лише для рядків. Це просто приклад.
Додавання до нього значень
Я припускаю, що ви зрештою захочете додати йому значення!
yourArray.append("String Value")
Або
let someString = "You can also pass a string variable, like this!"
yourArray.append(someString)
Додати шляхом вставки
Коли у вас є кілька значень, ви можете вставити нові значення замість додавання. Наприклад, якщо ви хотіли вставити нові об’єкти на початку масиву (замість того, щоб додавати їх до кінця):
yourArray.insert("Hey, I'm first!", atIndex: 0)
Або ви можете використовувати змінні, щоб зробити вставку гнучкішою:
let lineCutter = "I'm going to be first soon."
let positionToInsertAt = 0
yourArray.insert(lineCutter, atIndex: positionToInsertAt)
Ви зрештою захочете видалити деякі речі
var yourOtherArray = ["MonkeysRule", "RemoveMe", "SwiftRules"]
yourOtherArray.remove(at: 1)
Вищезазначене працює чудово, коли ви знаєте, де в масиві знаходиться значення (тобто коли ви знаєте його значення індексу). Оскільки значення індексу починаються з 0, другий запис буде в індексі 1.
Видалення значень, не знаючи індексу
Але що робити, якщо цього не зробити? Що робити, якщо вашOtherArray має сотні значень, і все, що ви знаєте, ви хочете видалити значення, рівне "RemoveMe"?
if let indexValue = yourOtherArray.index(of: "RemoveMe") {
yourOtherArray.remove(at: indexValue)
}
З цього слід розпочати!
var myArr1 = [AnyObject]()
може зберігати будь-який об’єкт
var myArr2 = [String]()
може зберігати лише рядок
Швидкий 3
Існує три (3) способи створення порожнього масиву в Swift, а стенографічний спосіб завжди бажаний.
Спосіб 1: Скорочений синтаксис
var arr = [Int]()
Спосіб 2: Ініціалізатор масиву
var arr = Array<Int>()
Спосіб 3: Масив з літералом масиву
var arr:[Int] = []
Спосіб 4: Кредит переходить до @BallpointBen
var arr:Array<Int> = []
var arr: Array<Int> = []
. [T]
це лише скороченняArray<T>
Є два основні способи швидкого створення / ініціалізації масиву.
var myArray = [Double]()
Це створило б масив пар.
var myDoubles = [Double](count: 5, repeatedValue: 2.0)
Це створило б масив з 5 пар, всі ініціалізовані зі значенням 2.0.
var myDoubles = [Double](repeating: 2.0, count: 5)
- відзначте зміну порядку параметрів та зміну мітки repeatedValue
наrepeating
Якщо ви хочете оголосити порожній масив типу рядка, ви можете зробити це 5 різними способами: -
var myArray: Array<String> = Array()
var myArray = [String]()
var myArray: [String] = []
var myArray = Array<String>()
var myArray:Array<String> = []
Масив будь-якого типу: -
var myArray: Array<AnyObject> = Array()
var myArray = [AnyObject]()
var myArray: [AnyObject] = []
var myArray = Array<AnyObject>()
var myArray:Array<AnyObject> = []
Масив цілого типу: -
var myArray: Array<Int> = Array()
var myArray = [Int]()
var myArray: [Int] = []
var myArray = Array<Int>()
var myArray:Array<Int> = []
Ось кілька поширених завдань у Swift 4, які ви можете використовувати як орієнтир, поки не звикнете до речей.
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
Масив у швидкій формі записується як ** Масив <Елемент> **, де Елемент - це тип значень, до якого дозволено зберігати масив.
Масив можна ініціалізувати як:
let emptyArray = [String]()
Це показує, що це масив рядка типу
Тип змінної emptyArray вважається [String] від типу ініціалізатора.
Для створення масиву рядків типу з елементами
var groceryList: [String] = ["Eggs", "Milk"]
groceryList був ініціалізований двома елементами
Змінна groceryList оголошується як "масив рядкових значень" , записаний як [String]. Цей конкретний масив вказав тип значення String, він може зберігати лише значення String.
Є різні властивості масиву, такі як:
- Щоб перевірити, чи є в масиві елементи (Якщо масив порожній чи ні)
isEmpty властивість (булева) для перевірки, чи властивість count дорівнює 0:
if groceryList.isEmpty {
print("The groceryList list is empty.")
} else {
print("The groceryList is not empty.")
}
- Додавання (додавання) елементів у масив
Ви можете додати новий елемент до кінця масиву, зателефонувавши у додаток масиву (_ :):
groceryList.append("Flour")
тепер продуктовий список містить 3 елементи.
Крім того, додайте масив одного або декількох сумісних елементів з оператором присвоєння додавання (+ =):
groceryList += ["Baking Powder"]
тепер продуктовий список містить 4 елементи
groceryList += ["Chocolate Spread", "Cheese", "Peanut Butter"]
тепер продуктовий список містить 7 предметів
Відповідно до 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()
ви можете видалити вміст масиву, передаючи індекс масиву, або ви можете видалити весь
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)
Швидкий 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)
}
Аналогічна відповідь дається, але це не працює для останньої версії Swift (Swift 5), тому ось оновлена відповідь. Сподіваюся, це допомагає! :)
Ініціювання масиву з попередньо визначеним числом:
Array(repeating: 0, count: 10)
Я часто використовую це для відображення висловлювань, де мені потрібна визначена кількість макетних об'єктів. Наприклад,
let myObjects: [MyObject] = Array(repeating: 0, count: 10).map { _ in return MyObject() }
Сумісний із: Xcode 6.0.1+
Ви можете створити порожній масив, вказавши в декларації тип елемента для свого масиву.
Наприклад:
// Shortened forms are preferred
var emptyDoubles: [Double] = []
// The full type name is also allowed
var emptyFloats: Array<Float> = Array()
Приклад зі сторінки розробника яблук (масив):
Сподіваємось, це допоможе комусь натрапити на цю сторінку.