Co nowego w Swift 3?

Co nowego w Swift 3?

W ostatnim czasie język Swift został zaprezentowany w nowej wersji 3.0. W związku z tym możemy zauważyć modyfikacje dotyczące usunięcia funkcji, które zostały już wycofane w Swift 2.2. Z drugiej strony widzimy zmiany dotyczące modernizacji języka.

Pętla for w stylu języka C

Do tej pory mogliśmy używać standardowej konstrukcji pętli for znanej z Języka C. W Swift 3 nie wolno już tego robić. Jako odpowiedniki przychodzą nam z pomocą otwarty i półotwarty operator zakresu.

for(var i = 0; i < 10; i += 1) {
            print(i)
        }
        for i in 0...9 {
            print(i)
        }
Alternatywnie możemy skorzystać z pętli for-each.

(0…9).forEach {
            print($0)
 }

Operatory ++ i —

Operatory inkrementacji i dekrementacji występują w dwóch rodzajach: z przedrostkiem lub z przyrostkiem. Wycofanie tych operatorów jest konsekwencją błędów występujących podczas wyboru ich odpowiedniego rodzaju oraz likwidacji pętli for w stylu języka C.

var i = 0
 i++ // Error, XCode offers to use: 
 i += 1
Poniższy kod nie działa w wersji 3.0.

i++
++i
i--
--i

Krótka jako lista argumentów do funkcji

Do tej pory możliwe było skorzystanie z mało znanej funkcji, aby przekazać całą listę argumentów jako pojedynczą wartość.

printNames(firstParameter: 7, secondParameter: 8)
let singleValue = (firstParameter: 7, secondParameter: 8)
printNames(singleValue)

Aktualna wersja nie pozwala już na takie praktyki.

Etykieta dla pierwszego parametru funkcji

W Swift 2 i wcześniej nazwy metod nie wymagały etykiety dla pierwszego parametru.

printNames(8, secondParameter: 7)

W nowej wersji trzeba określić również etykietę dla pierwszego parametru.

printNames(firstParameter: 8, secondParameter: 7)

Apple oferuje jednak sposób na ominięcie tego wymogu.

printNames(_ firstParameter: 8, secondParameter: 7)

Var w parametrach funkcji

W większości przypadków nie potrzebujemy modyfikować parametrów funkcji w jej wnętrzu, dlatego definiowane są one jako stałe. Zdarzają się jednak sytuacje, w których jest to pomocne. W Swift 2 można użyć do tego słowa kluczowego var, które poprzedza nazwę parametru funkcji.

func myFunction(var firstValue: Int, var secondValue: Int) -> Int {
firstValue += 1
return firstValue
}

Najnowsza wersja usuwa var z parametrów funkcji. Należy więc przypisać wartości parametrów funkcji do zmiennych lokalnych.

func myFunction( firstValue: Int, secondValue: Int) -> Int {
var firstValue = firstValue
	firstValue += 1
	return firstValue
}

Zbędne słowa

Nazwy metod, które zawierały oczywiste słowa, mają teraz te słowa usunięte. Sprawia to, że nazwy metod są znacznie krótsze.

//Swift 2
"Hello World".capitalizedString
let color = UIColor.blackColor
let numbers = [1,2,3,4]
numbers.maxElement()
UIDevice.currentDevice()


//Swift 3
"Hello World".capitalized
let color = UIColor.black
let numbers = [1,2,3,4]
numbers.max()
UIDevice.current
}

Konwencja nazewnictwa

Swift 3 dzieli metody na dwie grupy:

  • wykorzystujące rzeczowniki do nazewnictwa – zwracają one pewną wartość,
  • wykorzystujące czasowniki – wykonują one na elementach pewne działania.
// Enumerate() w Swift 3
var numbers = [17, 26, 1, 36]
for (index, value) in numbers.enumerated() {
print("tab[\(index)] = \(value)")
}

Kolejnym przykładem mogą być metody sort() i sortInPlace(). Zostały one teraz zastąpione odpowiednio przez metody sorted() i sort().

//Swift 2
let newArrayInSwift2 = numbers.sort()
print(newArrayInSwift2)
// Swift 3
let newArrayInSwift3 = numbers.sorted()
print(newArrayInSwift3)
//Swift 2
numbers.sortInPlace()
print(numbers)
//Swift 3
numbers.sort()
print(numbers)

Każda nowa wersja Swifta sprawia, że język staje się łatwiejszy do nauczenia, łatwiejszy w użytkowaniu oraz coraz szybszy. Swift 3 zawiera wiele fundamentalnych zmian, które wpłyną na nasz istniejący kod i pomogą uniknąć części błędów w przyszłości.

Dowiedz się więcej

Wycena projektu

Opowiedz nam o swoim projekcie i napisz, jak możemy Ci pomóc.

Dlaczego warto rozwijać z nami projekty?

Logo Mobile Trends Awards

Mobile Trends Awards 2021

Wygrana w kategorii
ŻYCIE CODZIENNE

Nagroda Legalnych Bukmacherów

Nagroda Legalnych Bukmacherów 2019

Najlepsza aplikacja mobilna

Mobile Trends Awards logo

Mobile Trends Awards 2023

Wygrana w kategorii
MCOMMERCE ROZWÓJ

23

opinie klientów

Clutch logo