Swift 2021 бесплатные уроки для новичка. Часть 1
Часть 1 (1-10 уроки)
// За кавычками находятся комментарий. (Не код.)
// Шикарный видео курс для новичка от Яна Соломеина
В этом видео 2020 года рассказываются самые основы. Ниже изложен код и его результат. Вы можете копировать себе код и на его основе собирать свои конструкции. Для начала это идеальный урок.
// Lesson 1 // Constant / Константы
// Видео 4:23 Константы и переменные
let — константа (неизменная) var — переменная (от слова «variable» — переменная ) let greetings = "Hello, World" var direction = "Left" direction = "Right" greetings
// direction - направление
// greetings - приветствие
// let константа может быть одна и не меняется
// Lesson 2 // Type data / Тип данных
// Видео 13:15 Типы данных
Int — integral (целочисленное, целое число) 1, 12, -4, 99, складываются между собой.
Float — Число с плавающей точкой (2.134) Floating-point number (2.1234567 7 цифр после запятой не точные вычисления) отличие в точности.
Double — Число с плавающей точкой (2.134) double-precision floating-point number (2.342342344 64x самые точные вычисления, выбирается по умолчанию)
var a = 42 var b = -27 var x = 5.47 var c = -300.145
//var sum (суммирование)
var sum = Double(a) + x // Складываем Int (a)+ Double(x) для точного сложения преобразовываем целочисленное Integral в Double в таком случае все что находится после точке учитывается в уравнении 42+5.47=47.47 если преобразуем var sum = a + Int(x) получим 42+5.47=47 все что после точки съело.
var hiBro = "Hello, word" var h = "Hello, " var r = "people!" var sum2 = h + r print("Hi \(r)")
// Складываем строки методом Конкатенации \()
// Lesson 3 // Boolean (Логические) / Bool
// Булевы значения (True — Верно) (False — лож, нет, не верно.)
// !а — Не
// a && b — И
// a || b — или
var areYouHappy = true
// Дана переменная areYouHappy
// Пример 1
if areYouHappy { print("Good") } else { print("Bad") }
// if — если
// true — если (areYouHappy = true ) выводить это
// else — ещё
var areYouHappy2 = false
// Дана переменная areYouHappy2
// Пример 2
if areYouHappy2 { print("Good") } else { print("Bad") }
// false — если (areYouHappy2 = false) выводить это
// Lesson 4 // Сложение чисел Int + Double
// Int — Целочисленное 1, 5, 7, -10,
// Double — Число с плавающей точкой 3.23, 7.12467 , -0.2444
var a = 42.25 // a — является Double Дабл (по умолчанию)
var b = 10 // b — является Int Интеграл
var sum2 = Int(a) + b // Число (a) 42.25 превращаем в Int
// Неверный способ. Ответ будет 42.25+10 = 52 все что после точки пропадает.
var sum3 = a + Double(b) // Необходимо Int(b) 10 превратить в Double
// Верный способ. Ответ будет 42.25+10 = 52.25
// Lesson 5 // Basic Operators
// Видео 31:17 Базовые операторы
// Унарные
Префиксные: (перед выражением) -а !b +c
Постфиксные: (после выражения) x+ u-
// Бинарные
// Инфиксные: (ин внутри in) 1 + 2
// 1, 2 — это операнды — данные которые обрабатываются с помощью +-:*%
// Тернарные
a ? b : c ( если а (true = ?) то что верно b или с )
// Оператор присваивания
= ( let a = 5 присваиваем константе а цифру 5 ) var a = 5
// Арифметические операторы
+, -, *, /, % let x = 12 let y = 5 x + y x - y x * y x / y let h = "Hello, " //Строки можем складывать let g = "Swift." h + g
// Ответ: Hello, Swift.
x % y
// 12/ делим (5 * 2) + 2
// Lesson 6 // Составные операторы присвоения
var c = 1
c += 2 // += составной оператор с + 2 = 3 ( с=1 то есть c+=2 получается 3 )
c = c + 2 // c=3 строкой выше с+2 где с (3) + 2 =5
var count = 6 // count - перевод "считать"
count += 1 // ответ 7 / 6 считать + 1 (считать count (6) += 1) ответ 7
// Lesson 7 // Операторы сравнения
// == равно / != не равно / > больше / < меньше /
// >= больше или равно / <= меньше или равно
let t = 15 let p = 10
t == p // false лож или неверно (не равно) 15=10 (false ==)
t != p // true правда или да (верно, не равно) 15 не равно 10 (true !=)
t > p
t < p
t >= p
t <= p
let name = "world" // let Константа «world»
if name == "world" { // if если = world (True)
print("Hello, world!") // то печатаем Hello, world!
} else { // else ещё (другое что-то)
print("Something went wrong") // то печатаем Something went wrong
}
// Ответ: Hello, world!
// Lesson 8 // Тернарный (?) / Условный оператор
// Выражение ? / действие 1 : действие 2
if выражение {
действие 1
} else {
действие 2
}
let firstCard = 11 // Первая карта = 11
let secondCard = 10 // Вторая карта = 10
if firstCard == secondCard { // if если первая карта = второй карте
print("Cards are the same") // печатаем («Карты одинаковы»)
} else { // else еще (другое) в том случае если не равно
print("Cards are different") // печатаем («Карты разные»)
}
// Этаже запись с помощью тернарного оператора (?) он же ==
firstCard == secondCard ? print("Cards are the same") : print("Cards are different")
// Если не равно
firstCard != secondCard ? print("Cards are the same") : print("Cards are different")
// Ответ видим в коде.
var gender = 1 gender == 0 ? print("male") : print("famaly") var fruits = 2 fruits == 0 ? print("apple") : print("mango") gender; index fruits; index
// Попробуйте не равно fruits != 0 ? print("apple") : print("mango")
// Lesson 9 // Оператор замкнутого/закрытого диапазона (a...b),
// Оператор полузамкнутого/полузакрытого диапазона (a..<b) не включая Б b
// Видео
// Логические операторы / ! — не, !a — (не a) / && — и / || — или
let areYouHappy = true // константа выСчаствиы = да
if !areYouHappy { // if — если !выСчаствивы / где ! — не
print("Good, for you") // false печатаем(«Повезло, тебе»)
} else { // else — ещё
print("What can a do for you?") // true печатаем(«Чем можем помочь?»)
}
// Другой пример && / и
let areYouHappy = true let isTheWeatherGood = true if areYouHappy && isTheWeatherGood { print("Go outside") } else { print("Stay home") }
// true / areYouHappy = true и isTheWeatherGood = true
// true / не выполняется поскольку первое исполнено
// Другой пример || / или
let isTheWeatherGood2 = true if areYouHappy || isTheWeatherGood2 { print("Go outside") } else { print("Stay home") }
// true / areYouHappy good = true
// true / не выполняется поскольку первое исполнен
// Lesson 10 // Условия
// Видео 59:40 Условия
// Пример 1
let firstCard = 11
let secondCard = 10
if firstCard + secondCard == 21 {
print("You are win")
} else if (firstCard + secondCard) > 18 && (firstCard + secondCard) < 21 {
print("Good cards")
} else {
print("Regular cards")
}
// Условие при котором печатается «You are win»
// if firstCard + secondCard == 21 (первое условие)
// Второе условие не выполняется поскольку уже выполнилось первое.
// Пример 2
// Изменим наши константы:
let firstCard = 11
let secondCard = 8
if firstCard + secondCard == 21 {
print("You are win")
} else if (firstCard + secondCard) > 18 && (firstCard + secondCard) < 21 {
print("Good cards")
} else {
print("Regular cards")
}
// Условие при котором печатается «Good cards»
// ( 11+8=19 ) 19>18 ( 11+8=19 ) 19<21
//(firstCard + secondCard) > 18 && (firstCard + secondCard) < 21
// Пример 3
let age1 = 12
let age2 = 21
if age1 > 12 && age2 > 18 { // Распечатается если все условие будет True
print("Both are over 18")
}
if age1 > 12 || age2 > 18 { // Распечатается если одно условие True
print("Both are over 18")
}
// Switch — переключатель.
switch (переключатель) значение для сопоставления {
case значение 1:
инструкция для значения 1
case значение 2:
инструкция для значения 2
case значение 3:
инструкция для значения 3
default:
инструкция, если значения с шаблонами не найдены (не совпадают)
}
// Пример 1
let weather = "sunny"
switch weather {
case "rain": print("Ring an umbrella")
case "sniw": print("Wrap up warm")
case "sunny": print("Wear glasses")
case "clouds": print("Maybe rain")
default: print("Enjoy your day") //Если ничего не подходит выводим это.
}
// Вводим значение: fallthrough (Терпеть неудачу)
// В таком случаем выводится строка ниже.
// Вводим константу age = 12
let age = 12
switch age {
case 0...10: print("You are too young")
case 13..<20: print("Yoy are teenager")
case 20...60: print("You are grown man")
default: print("How old are you")
}
// Как думаете что выведется при компиляции?
// Распечаталось How old are you (сколько тебе лет)
// Потому что не указан диапазон от 10...13
// Выводится default
let age = 80 // или больше 80...
case 80...: print("You are old man")
// Lesson 12 / Циклы / Cycles
// for in / while / repeat-while / (Смотреть)
// Видео 1:15:19 Циклы
// Пример 1 / for in /
let count = 1...10 // count (считать) Включая число 1 и число 10
for number in count {
print("Number is \(number)") // Метод конкатенации
}
// Распечаталось 10 цифр.
// Итерация — повторение одного и того же действия.
// number можем заменить на любое имя (allName) (i) (numeral) и.т.д.
// Это — внутренняя константа, используется только внутри тела цикла.
// Пример 2 / for in /
for _ in 1...5 {
print("Hello")
}
// Распечатать Hello 5 раз (Итерация)
// Пример 3 / for in /
for index in 0...9 {
print("\(index) умножить на 3 равно \(index * 3)")
}
// Итерация с использованием ( * ) умножения
// Пример 4 / while /
// Если условие истинно True то выполняется пока не станет False
while условие {
инструкция
}
// Запишем
var number = 1
while number <= 20 {
print(number)
number += 1
}
print("Start")
// Выполнять до тех пор пока меньше < или = 20 (True)
// и печатать (это значение)
// каждую итерацию прибавлять +1
// как только станет больше > или =20 (False) напечатать «Start»
// Пример 5 / repeat-while / в других языках«do while»
repeat {
инструкция
} while условие
// Запишем
var number = 10
repeat {
print(number)
number += 1
} while number <= 20
print("Start")
// Пример 6 / repeat-while /
var number = 10
repeat {
print(number)
number += 1
} while number <= 5
print("Finish")
// В данном случае число 10 уже прошло проверку.
// repeat (повторять) = 10 (True)
// и печатать (это значение)
// каждую итерацию прибавлять +1
// как только станет равно = 10 (False) напечатать «Finish»
// Пример 7 / repeat-while / Отсчитать до старта /
var start = 10
while start >= 0 {
print(start)
start -= 1
}
print("Go, go!")
// Задача отсчитать время до старта в обратном порядке.
// while (пока) start больше или равен >= 0
// печатать (значения start)
// При каждой итерации отнимая (start 10) -1 (start -= 1)
// Все числа 10,9,8......3,2,1,0 (True)
// Как только значение станет (False) напечатать «Go, go!»