Test: 🧪 Что вернёт метод allCases у enum, который реализует CaseIterable❓🤔
Anonymous Quiz
20%
A) Количество case
0%
B) Только первый case
68%
C) Массив всех case
12%
D) Массив всех rawValue
❤4💯1
Bei Code 🍏
Test: 🧪 Что вернёт метод allCases у enum, который реализует CaseIterable❓🤔
Пример кода к этому вопросу 👨💻
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
import Foundation
// Enum с поддержкой CaseIterable
enum Direction: CaseIterable {
case north
case south
case east
case west
}
// Проверим результат работы allCases
print("Количество элементов: \(Direction.allCases.count)")
print("Список всех case: \(Direction.allCases)")
// Перебор всех вариантов
for direction in Direction.allCases {
print("Направление: \(direction)")
}
❤2👍1💯1
Test: 🧪 Может ли enum в Swift быть рекурсивным (ссылаться на себя через associated value)❓🤔
Anonymous Quiz
8%
A) Нет, Swift этого не позволяет
75%
B) Да, но с ключевым словом indirect
4%
C) Только в классах
13%
D) Да, но только с optional
👍3❤2
Bei Code 🍏
Test: 🧪 Может ли enum в Swift быть рекурсивным (ссылаться на себя через associated value)❓🤔
Пример кода к этому вопросу 👨💻
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
import Foundation
// Рекурсивное перечисление с использованием `indirect`
enum LinkedList {
case empty
indirect case node(Int, next: LinkedList)
}
// Пример использования
let list = LinkedList.node(1, next: .node(2, next: .node(3, next: .empty)))
// Рекурсивная функция для печати значений
func printList(_ list: LinkedList) {
switch list {
case .empty:
print("nil")
case .node(let value, let next):
print(value, terminator: " -> ")
printList(next)
}
}
printList(list)
// Вывод: 1 -> 2 -> 3 -> nil
❤3👍3
Test: 🧪 Может ли enum в Swift иметь вычисляемые свойства❓🤔
Anonymous Quiz
7%
A) Только статические
7%
B) Нет, нельзя
0%
C) Только приватные
87%
D) Да, можно
❤3👍1
Test: 🧪 Можно ли объявить enum внутри функции❓🤔
Anonymous Quiz
3%
A) Только в классе
79%
B) Да, можно, локально внутри функции
14%
C) Нет, нельзя!
3%
D) Только как private enum
❤4
Bei Code 🍏
Test: 🧪 Можно ли объявить enum внутри функции❓🤔
Пример кода к этому вопросу 👨💻
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
func testEnum() {
enum Status {
case ok
case error
}
let s: Status = .ok
print("Status =", s)
}
testEnum()
👍3❤1💯1
С Днём программиста! 👨💻👩💻Пусть код летает без багов, а идеи приходят легко! 🚀
if Date().isProgrammerDay {
print("С Днём программиста! 🎉")
let wishes = ["меньше багов 🐞", "больше апдейтов ⚙️", "горячего кофе ☕️"]
wishes.forEach { print("Желаем \($0)") }
}❤🔥3❤2👍1
Test: 🧪 Можно ли расширять enum через extension❓🤔
Anonymous Quiz
88%
A) Да, можно добавлять методы и computed properties ✅
4%
B) Только внутри класса
0%
C) Только для rawValue enum
8%
D) Нет
❤2🔥1
Bei Code 🍏
Test: 🧪 Можно ли расширять enum через extension❓🤔
Пример кода к этому вопросу 👨💻
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
enum Device {
case iPhone, iPad, mac
}
// расширяем enum через extension
extension Device {
var description: String {
switch self {
case .iPhone: return "📱 iPhone"
case .iPad: return "📱 iPad"
case .mac: return "💻 Mac"
}
}
func isMobile() -> Bool {
switch self {
case .iPhone, .iPad:
return true
case .mac:
return false
}
}
}
// Тестируем
let myDevice = Device.iPhone
print(myDevice.description) // 📱 iPhone
print(myDevice.isMobile()) // true
👍2❤1
Test: 🧪 Можно ли сделать enum, который наследуется от другого enum❓🤔
Anonymous Quiz
14%
A) Только через протокол
11%
B) Только если оба enum имеют rawValue
50%
C) Нет, нельзя
25%
D) Да, конечно можно
❤2👍2
Bei Code 🍏
Test: 🧪 Можно ли сделать enum, который наследуется от другого enum❓🤔
Пример кода к этому вопросу 👨💻
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
// ❌ Swift НЕ поддерживает наследование enum
// enum Super {
// case one, two
// }
//
// enum Sub: Super { // Ошибка: 'Super' is not a type that can be inherited from
// case three
// }
// ✅ Верный путь — через протокол
protocol SomeProtocol {}
enum First: SomeProtocol {
case a
}
enum Second: SomeProtocol {
case b
}
print(First.a)
print(Second.b)
❤2👍1💯1
Стартуем классы и структуры)
Test: 🧪 Что такое класс в Swift❓🤔
Test: 🧪 Что такое класс в Swift❓🤔
Anonymous Quiz
6%
A) Контейнер данных без методов
0%
B) Функция для работы с данными
94%
С) Ссылочный тип, который может иметь свойства, методы и поддерживает наследование
0%
D) Интерфейс
❤4👍1
Test: 🧪 Что такое структура в Swift❓🤔
Anonymous Quiz
18%
A) Reference type, который может содержать свойства и методы
82%
B) Value type, который может содержать свойства и методы
0%
C) Только контейнер числовых данных
0%
D) Интерфейс
❤4👍1
Bei Code 🍏
Test: 🧪 Что такое структура в Swift❓🤔
Пример кода к этому вопросу 👨💻
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
// struct = value type
struct PersonStruct {
var name: String
var age: Int
}
// STRUCT
var a = PersonStruct(name: "Alice", age: 30)
var b = a // копия
b.age = 31
print("Struct -> a.age:", a.age, "| b.age:", b.age)
// a остаётся 30, потому что struct копируется
❤2👍2
Test: 🧪 Что общего у классов и структур в Swift❓🤔
Anonymous Quiz
8%
A) Оба поддерживают наследование
0%
B) Только классы могут иметь инициализаторы
92%
C) Оба могут содержать свойства и методы
0%
D) Только структуры могут иметь методы
❤3👍1
Bei Code 🍏
Test: 🧪 Что общего у классов и структур в Swift❓🤔
Пример кода к этому вопросу 👨💻
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
Код, чтобы просто взять и Ctrl+C Ctrl+V 👇
/// Структура со свойством и методом
struct Dog {
var name: String
func bark() {
print("\(name) говорит: Гав!")
}
}
// Класс со свойством и методом
class Cat {
var name: String
init(name: String) {
self.name = name
}
func meow() {
print("\(name) говорит: Мяу!")
}
}
// Использование
let dog = Dog(name: "Шарик")
dog.bark() // Шарик говорит: Гав!
let cat = Cat(name: "Мурка")
cat.meow() // Мурка говорит: Мяу!
❤2👍1
Test: 🧪 Какое ключевое различие между классом и структурой❓🤔
Anonymous Quiz
96%
A) Класс — ссылочный тип, структура — тип значения
0%
B) Классы намного быстрее структур, потому что передаются по ссылке
0%
C) Структуры могут наследовать друг друга, это же естественно
4%
D) У структур нет свойств, ведь так оно и есть.
❤2👍1😁1