Swift by example arrays

import Foundation

Type inference FTW.
var strings = ["a", "b", "c"]

Declare the type of contained elements.
var strings2: [String] = ["d", "e", "f"]

Declare an empty array.
var strings3 = [String]()

Fill an array.
var strings4 = [String](count: 3, repeatedValue: "hey")


Arrays must contain values of a single type.
 
Appending.
strings += ["d"]
strings.append("e")
strings += ["f", "g"]

Joining.
strings3 = strings + strings2

Checking length.
print(strings.count)                      // 7

# Accessing elements


print(strings[0])                         // a
print(strings.first!)                     // a
print(strings[strings.endIndex - 1])      // g
print(strings.last!)                      // g

# Assigning elements


strings[0] = "a"

# Slices


strings[0..<1] = ["a"]                       // Exclusive (basically the same as the prev assignment)
strings[0...1] = ["a", "b"]                  // Inclusive
strings[0...3]                               // ["a", "b", "c", "d"]
strings[0..<strings.endIndex]                // ["a", "b", "c", "d", "e", "f", "g"]

# Methods


if strings.isEmpty {
    print("empty")
} else {
    print("populated")                   // populated
}
strings.insert("a", atIndex: 0)            // Insert, not replace
print(strings.removeAtIndex(0))          // a
strings.map({
    (str: String) -> String in
    return str + "0"
})                                         // ["a0", "b0", "c0", "d0", "e0", "f0", "g0"]
strings.removeLast()

# Clearing

strings.removeAll(keepCapacity: false)
strings = []

# Using a loop to create a multidimensional array

var rows = 10, cols = 10
var dimensional = Array<Array<Int>>()
for col in 0..<10 {
    dimensional.append(Array(count: rows, repeatedValue:Int()))
}