Swift Notes
34 subscribers
22 photos
3 videos
1 file
24 links
Обучающие материалы и полезные заметки по языку программирования Swift. Изначально задумывался, как моя личная записная книжка в процессе обучения. Связаться со мной @clockber
Download Telegram
👨🏼‍💻 Приветствую!

🗄Навигация по каналу Swift Notes

Для поиска материала вам следует указать поисковое слово через хештег

🔹 Swift начальный уровень
#variables
#switch
#conditionals
#loops
#array
#set
#dictionaries
#functions
#structures
#classes
#operators
#forin

🔹 Swift средний уровень
#enumerations
#optionals
#closures
#properties
#protocols
#generics
#ViewController

Грокаем алгоритмы\\ Адитья Бхаргава.
#бинарный поиск

P.S.
онлайн компилятор online.swiftplayground.run/

Рад любой обратной связи, поэтому пишите ваши пожелания, замечания ➡️ @clockber
Что такое generics и для чего они нужны? #generics

🔹 В Swift вы можете использовать generics в классах, структурах и перечислениях.

🔹 Generics устраняют проблему дублирования кода. Если у вас есть метод, который принимает параметры одного типа, иногда приходится дублировать код, чтобы работать с параметрами другого типа.

🔹 Например, в этом коде вторая функция — это «клон» первой, за исключением того, что у неё параметры string, а не integer.

func areIntEqual(_ x: Int, _ y: Int) -> Bool {
return x == y
}

func areStringsEqual(_ x: String, _ y: String) -> Bool {
return x == y
}

areStringsEqual("ray", "ray") // true
areIntEqual(1, 1) // true

🔹 Применяя generics, вы совмещаете две функции в одной и одновременно обеспечиваете безопасность типов:

func areTheyEqual<T: Equatable>(_ x: T, _ y: T) -> Bool {
return x == y
}

areTheyEqual("ray", "ray")
areTheyEqual(1, 1)

🔹 Так как вы тестируете равенство, вы ограничиваете типы теми, которые отвечают протоколу Equatable. Этот код обеспечивает требуемый результат и препятствует передаче параметров неподходящего типа.