Swift #1: Podstawy

Nauka programownia

Opublikowany: Aug 17, 2018

Swift jest językiem zaprezentowanym przez Apple w czerwcu 2014 roku (wcześniej w systemach Apple rządził język Objective-C, który swoją drogą też Ci się jeszcze w pewnym momencie przyda). Od tej pory nowa wersja prezentowana co roku w czerwcu w trakcie konferencji World Wide Developer Conference (WWDC). Od grudnia 2015 roku język jest udostępniony na zasadach Open Source, co oznacza, że deweloperzy mają znaczny wpływ na jego rozwój (zajrzyj na HTTPS://SWIFT.ORG/).

Szczególną cechą języka jest to, że nie pozwala na zaistnienie szerokiej gamy błędów, które w innych językach są łatwe do popełnienia przez programistę. Na to jakie są to błędy będę zwracał uwagę przy wprowadzaniu kolejnych elementów języka.

WERSJE SWIFT Aktualną (2018) wersją języka jest wersja 4.2. Tą wersją się zajmienmy. Ta wersja nie jest kompatybilna ze składnią wersji 2 i 1, jednakże kompilator Swift 4 może pracować z wersją 3.2, pozwalając nawet na kompilację warunkową z użyciem instrukcji if swift(>=3.2)

ZACZYNAMY NAUKĘ JĘZYKA.

Aby rozpocząć naukę Swift, najwygodniej jest skorzystać z Xcode Playground, czyli “placu zabaw”, na którym można ćwiczyć możliwości prostego kodu. Playground, mimo że reklamowany przez Apple jako narzędzie prototypowania kodu (czyli projektowania i testowania fragmentów kodu), nie jest zbyt stabilny, stąd nadaje się przede wszystkim do nauki. Aby rozpocząć pracę z językiem, na ekranie startowym Xcode należy wybrać “Get started with a playground”.

ch1-s3.png

PODSTAWOWA SKŁADNIA

Zdarzają się programy, których wynik działania z punktu widzenia użytkownika jest identyczny. Pomimo tego, okazuje się, że kody źródłowe są często zupełnie inne. Szczególnie w przypadku dużych projektów, niezwykle mało prawdopodobne jest, aby dwóch programistów napisało taki sam kod źródłowy. A jednak, kody programów pisanych przez programistów muszą przestrzegać ściśle określonych reguł, do których należy m.in. składnia języka, w naszym przypadku języka Swift. W skład niej wchodzi szereg konstrukcji, które będziemy poznawać na kolejnych lekcjach.

DLA POCZĄTKUJĄCYCH: CO TO JEST SKŁADNIA?

Składnia określa zasady pisania kodu. Podobnie jak w języku polskim lub angielskim mamy gramatykę, mówiącą gdzie należy postawić czasownik a gdzie rzeczownik, a w matematyce mamy określone zasady gdzie powinny stać operatory (np. znak dodawania), a gdzie liczby. Składnia mówi więc nam po prostu jak pisać program.

Punktem startowym dla programu jest kod zakresu globalnego. Możecie to zauważyć w otwartym Xcode Playground.

import UIKit
var str = "Hello, playground"

Każdy nowo utworzony Playground składa się od razu z kilku linijek kodu źródłowego. I tak tutaj zobaczymy

  • komentarz
  • dyrektywę import dla bibliotek – w ten sposób będą zawsze dodawane zewnętrzne (w stosunku do aplikacji) biblioteki i frameworki, oferujące dodatkową funkcjonalność
  • deklarację zmiennej, do której przypisany jest pewien napis

STRUKTURA KODU

Bardzo istotnym elementem każdego języka programowania jest struktura kodu. To dzięki niej kompilator wie w jakiej kolejności są wykonywane instrukcje, aby odpowiednio przetłumaczyć kod źródłowy na język zrozumiały dla komputera. W przypadku języka Swift takim punktem startowym programu jest globalny zakres kodu.

Oznacza, że wykonywanie instrukcji kodu programu zaczyna się od pierwszej napotkanej w pliku źródłowym instrukcji. Jest to cecha odróżniająca Swift od takich języków jak Java, C# czy nawet Objective-C, gdzie wymagana jest specjalna funkcja main, od której zaczyna się wykonywanie kodu.

KOMENTARZE

Komentarze w języku Swift są dość standardowe. Mogą wystąpić ich dwa rodzaje

  • Komentarz jednoliniowy, zaczynający się od znaków //
  • Komentarz wieloliniowy, zawarty między znakami / oraz /
//to jest komentarz

/*to też

jest

komentarz */

Komentarze są to fragmenty pliku z kodem, które nie są brane pod uwagę przez kompilator podczas kompilacji. Można więc tam dodać kilka słów od siebie, tłumaczących w ludzki sposób o co chodzi w danym miejscu kodu źródłowego. Komentarze pozwalają zatem na łatwiejsze zrozumienie kodu. Inną ich bardzo istotną możliwością jest też tymczasowe pominięcie

STAŁE I ZMIENNE

Zmienne i stałe są jedną z najważniejszych części każdego języka programowania. Można je rozumieć jako identyfikatory danych. Każdy identyfikator jest nazwą, która wskazuje na jakiś obszar pamięci komputera, w którym jest przechowywana jego wartość. Operacje na tych identyfikatorach pozwalają na modyfikowanie zawartości pamięci.

Język Swift pozwala na bardzo łatwe zadeklarowanie zmiennych i stałych. Używa się do tego słów kluczowych poprzedzających identyfikator. I tak słowo var oznacza deklarację zmiennej, słowo let oznacza deklarację stałej.

var zmienna = 1
var stala = 2

ZACZNIJMY OD ZMIENNYCH.

Jeżeli od razu zainicjalizujemy zmienną jakąś wartością, jej typ zostanie wydedukowany automatycznie. Oznacza to, że nie musisz jawnie deklarować jakiego typu jest stworzony identyfikator. Swift dowie się o tym z kontekstu.

Mimo syntaktycznych podobieństw do składni wielu języków programowania, w których typ takiego identyfikatora jest obojętny i może być zmieniany w dalszych częściach kodu, Swift jest językiem o silnym typowaniu. Oznacza to, że raz określony typ zmiennej nie może być już później zmieniany. Oczywiście do zmiennych możesz później przypisać dowolne wartości tego samego typu.

A CO ZE STAŁYMI?

Zadeklarowanie identyfikatora z wykorzystaniem słowa kluczowego let nie pozwala na jego późniejsze modyfikowanie. Dlatego przypisania do stałej należy dokonać tylko raz. Oczywiście wartością przypisaną do stałej może być zarówno literał jak i wynik jakiegoś obliczenia.

Istotną cechą języka jest fakt, że każda zmienna i stała musi zostać od razu zainicjalizowana. Nie ma możliwości, aby przypadkiem użyć zmiennej, która nie ma przypisanej wartości. Jeśli zmiennej nie zainicjalizujemy, otrzymamy odpowiedni komunikat podczas kompilacji.

Dlaczego dobre jest wymuszanie inicjalizacji zmiennych?

Błędy wynikające z powodu braku inicjalizacji zmiennych są jednymi z najczęstszych. Szczególnie dla początkujących programistów. Jeśli zmienna nie zostanie zainicjalizowana, a w dalszej części kodu spróbujemy pobrać wartość na jaką wskazuje, wystąpi błąd wykonania programu. Odwołujemy się bowiem do nieistniejącego w pamięci elementu. Swift nie pozwala na przypadkowe pozostawienie zmiennej bez inicjalizacji. Dlatego powyższy problem tu nie wystąpi …zwykle, bo w pewnych sytuacjach, na własne życzenie programisty da się tego dokonać.

PODSUMOWANIE

Podsumowując, każda zmienna ma typ i identyfikator (nazwę). Identyfikator jest ciągiem złożonym z liter, cyfr i innych znaków, nie zaczynającym się od cyfry, w którym nie występują znaki specjalne, takie jak spacja (odstęp), kropka, średnik itp. Służy on do odwoływania się do zmiennej. Typ określa rodzaj przechowywanych w zmiennej danych. Deklarując zmienną informujemy kompilator o jej identyfikatorze i typie. Przypisanie wartości (wykonywane za pomocą operatora =) do zmiennej musi nastąpić podczas deklaracji [1] Wartość przechowywana w zmiennej może zostać zmieniona. Zauważmy, że przy zapisie wartości zmiennych typu rzeczywistego część całkowita jest oddzielona od części ułamkowej kropką.

W niektórych przypadkach będziemy chcieli jawnie określić typ zmiennej, nie pozostawiając pola do popisu kompilatorowi. Wówczas możemy skorzystać z notacji :. Takie rozwiązanie pozwoli na wymuszenie typu, w przypadku gdy wyrażenie inicjalizujące nie jest do końca zgodne z oczekiwanym typem.

var zmiennaTypuInt:Int = 4
var zmiennaDouble:Double = 4

ZADANIA

Zadanie 1. Uruchom Xcode Playground i zadeklaruj stałe: mojeImie, mojeNazwisko oraz zmienne: mojaWaga, mojAdres, mojWzrost i przypisz im odpowiednie wartości.

Zadanie 2. Przypisz nowe wartości do stworzonych w zadaniu 1 identyfikatorów. Dla których identyfikatorów można to zrobić?

Zadanie 3. Zastanów się, dlaczego zadeklarowaliśmy mojeImie jako stałą i mojaWaga jako zmienną?

CO DALEJ?

W kolejnej części, już niedługo, zajmiemy się podstawowymi typami danych.

SZKOLENIA Z PODSTAW SWIFT:


  1. …lub dopiero później, w kodzie programu, ale pod pewnym warunkiem, o którym później


Image
Felieton
Zarabianie Schrodingera
Sep 03, 2019
Image
Felieton
Rozliczanie aplikacji sprzedanych w AppStore
Jun 10, 2019
Image
Felieton
Cały internet na płycie CD
Apr 01, 2019
Image
Nauka programownia
Swift: O co chodzi z tymi kolejkami?
Feb 17, 2019
Image
Felieton
Tim Cook docenił wzrost sprzedaży w Polsce
Feb 04, 2019

Nasze szkolenia

Image
Image
Programowanie aplikacji iOS w Swift 5
Dwudniowe szkolenie od podstaw
Toruń - 2020-03-14
dr Błażej Zyglarski
Image
Image
Objective-C dla programistów Swift
Jednodniowe szkolenie dla programistów Swift
Warszawa - 2020-01-11
dr Błażej Zyglarski
Image
Image
Programowanie Gier 2D na iOS
Trzydniowe szkolenie ze SpriteKit i GameplayKit dla programistów Swift
Toruń - 2020-03-27
dr Błażej Zyglarski