Swift Arrays: In this tutorial, you will learn about arrays, creating it, accessing values of an array and some normal tasks in array.

In the previous Swift Data Types tutorial, we learned about creating variables/constants of some Data Type that can hold a single worth.

Be that as it may, imagine a scenario where we need to store various values of a similar data type. We use something many refer to as Array in Swift.

Swift Arrays

In Swift, an array is ordered assortment of homogeneous element put in touching memory areas that can be accessed individually by adding an index or subscript to a unique identifier. Swift arrays are typed, subsequently once you proclaim the sort of the array or swift infers it then you would just have elements of a similar type. An arrays variable is useful when we need to hold various values of single data type in single variable.


What is an array?

An array is essentially a holder that can hold different data (values) of a data type in an arranged rundown, for example you get the elements in a similar order as you defined the things in the array.

An array can store values of any data type e.g.Int, String, class and so forth


How to declare an array in Swift?

You can create an unfilled array by determining the data type inside square brackets [].

Keep in mind, You need to incorporate the sort inside square brackets, in any case Swift will treat it as a normal data type and you can store just a single worth in it.

Example 1: Declaring an empty array

let emptyIntArr:[Int] = []
print(emptyIntArr)

At the point when you run the program, the output will be:

[ ]

In the above program, we have declared a consistent emptyIntArr that can store array of integer and instated with 0 qualities.

Or

You can likewise define an empty array as underneath:

let emptyIntArr:Array<Int> = Array()
print(emptyIntArr)

Or on the other hand

Since, swift is a sort induction language, you can likewise create array straightforwardly without indicating the Data Type however should instate for certain qualities so compiler can infer its sort as:

Example 2: Declaring an array with some values

let someIntArr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(someIntArr)

At the point when you run the program, the output will be:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

In the above program, we have declared a consistent someIntArr that can store array of Integer without indicating the sort explicitly. Likewise, we have instated array with 1, 2, 3, 4, 5, 6, 7, 8, 9 values.


Example 3: Declaring an array containing the specified number of a single repeated value

You can likewise repeat a worth a given number of times to form an array in Swift. This is finished by using the array initializer with repeating and count.

let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4)
print(arrWithRepeatingValues)

At the point when you run the program, the output will be:

["Hello, World", "Hello, World", "Hello, World", "Hello, World"]

In the above program, we have defined a consistent arrWithRepeatingValues that stores an array of string Hello, World and repeats similar incentive for 4 times as indicated in the count.

Note: In Swift, you can’t create array of fixed-length size as you do in other programming languages. Fixed length size array implies, array can’t have a larger number of elements than you define during initialization.


How values are stored in array?

Assume you have a constant that can store an array of strings as underneath:

let intArr = [21, 34, 54, 12]

All arrays you create begins with the index0. The first element is put away in the index 0 , second element in the next index (1, etc.


How to access array elements in Swift?

You can access elements of an array by using subscript syntax, i.e.You need to incorporate index of the worth you need to access inside square brackets immediately after the name of the array.

Assume you proclaimed an array intArr as above. The first element is intArr[0], second element is intArr[1], etc.

Example 4: Accessing elements of an array

let intArr = [21, 34, 54, 12]
print(intArr[0])
print(intArr[1])
print(intArr[2])
print(intArr[3])

At the point when you run the program, the output will be:

21
34
54
12

You can likewise get to elements of an array by using for-in loops. See Swift For-in loop to study it.


How to modify/add array elements in Swift?

You can adjust elements of an array by using subscript syntax and task operator, for example you need to incorporate index of the worth you need to update inside square brackets after the name of the array followed by the task operator and new worth .

Example 5: Modifying elements of an array

var intArr = [21, 34, 54, 12]
intArr[0] = 12
intArr[1] = 42
intArr[2] = 45
intArr[3] = 21
print(intArr)

At the point when you run the program, the output will be:

[12, 42, 45, 21]

You can likewise change every one of the elements of array with new values as beneath:


Example 6: Modifying an array as a whole

var intArr = [21, 34, 54, 12]
intArr = [1,2,3]
print(intArr)

At the point when you run the program, the output will be:

[1, 2, 3]

Nonetheless, to add another element to a current array , you can’t use the subscript syntax. In the event that you do, you’ll end up with an error. You can’t accomplish something like this:


Example 7: Adding a new element in an array using subscript syntax (Doesn’t work)

var intArr = [21, 34, 54, 12]
intArr[4] = 10

At the point when you run the program, the output will be:

fatal error: Index out of range

The above program gives an error while assigning a new element to an array intArr. This is on the grounds that, intArr has not allocated additional memory for the index 4 and can’t store the given worth.

To accurately embed another element to an array, we use array’s append() technique. append() is portrayed in the beneath area.


Some helpful built in Array functions & properties

1. isEmpty

This property determines whether an array is vacant or not. It returns true if an array doesn’t contain any worth in any case returns false.

Example 8: How isEmpty works?

let intArr = [21, 34, 54, 12]
print(intArr.isEmpty)

At the point when you run the program, the output will be:

false

2. first

This property is used to get to first element of an array.

Example 9: How first works?

let intArr = [21, 34, 54, 12]
print(intArr.first)

At the point when you run the program, the output will be:

Optional(21)

Essentially, you can use last property to get to the last element of an array.


3. append

The append work is used to insert/append element toward the finish of the array.

Example 10: How append works?

var intArr = [21, 34, 54, 12]
intArr.append(32)
print(intArr)

At the point when you run the program, the output will be:

[21, 34, 54, 12, 32]

You can likewise append of one array to another array as:

var firstArr = [1,2,3,4]
var secondArr = [5,6,7,8]
firstArr.append(contentsOf: secondArr)
print(firstArr)

At the point when you run the program, the output will be:

[1, 2, 3, 4, 5, 6, 7, 8]

4. insert

This function is used to insert/append element at explicit list of the array.

Example 11: How insert works?

var intArr = [21,34,54,12]
intArr.insert(22, at: 1)
print(intArr)

At the point when you run the program, the output will be:

[21, 22, 34, 54, 12]

Essentially you can likewise use eliminate property to eliminate element at indicated index.


5. remove

This function eliminates and returns the worth determined at the specified position from the array.

Example 12: How remove works?

var strArr = ["ab","bc","cd","de"]
let removedVal = strArr.remove(at: 1)
print("removed value is \(removedVal)")
print(strArr)

At the point when you run the program, the output will be:

removed value is bc
["ab", "cd", "de"]

Likewise, you can likewise use functions like removeFirst to eliminate first element of an array, removeLast to eliminate last element of an array and removeAll to empty an array.


6. reversed

This function returns the element of array reverse order.

Example 13: How reversed() works?

var intArr = [21,22,23,24]
let reversedArr = Array(intArr.reversed())
print(reversedArr)

At the point when you run the program, the output will be:

[24, 23, 22, 21]

7. count

This property returns the absolute number of element in an array.

Example 14: check

let floatArr = [10.2,21.3,32.0,41.3]
print(floatArr.count)

At the point when you run the program, the output will be:

4

Things to Remember

While using subscript syntax to get to elements of an array in Swift, you should be certain the worth lies in the index else you will get a runtime crash. Let’s see this in example:

let intArr = [21, 34, 54, 12]
print(intArr[-1])

At the point when you run the program, the output will be:

fatal error: Index out of range

In the above program, there is no worth in the index- 1. So when you attempt to get to the worth in the index you will get a runtime crash.

To prevent this, first discover the index of the element you are attempting to eliminate. And afterward eliminate element at the index as beneath:

var intArr = [21, 34, 54, 12]
if let index = intArr.index(of: 34) {
    print("found index")
    let val =  intArr.remove(at: index)
    print(val)
}

At the point when you run the program, the output will be:

found index
34

Thanks for reading! We hope you found this tutorial helpful and we would love to hear your feedback in the Comments section below. And show us what you’ve learned by sharing your photos and creative projects with us.