Тех собес на middle-senior IOS Developer в ****

Доступно с премиум-подпиской

Оформите премиум-подписку, чтобы получить доступ к:

  • Фильтрации по компаниям
  • Названиям компаний в интервью
  • Видеозаписям собеседований в категории IOS Developer

Посмотреть видео в категории

(2025-01-29)

Напиши метод, считающий факториал числа. Что такое факториал — функция, определённая на множестве неотрицательных целых чисел. Так, факториал числа 5: 5! = 5 4 3 2 1

0! = 1
(-n) = NaN

enum fError: Error {
    case .ferror
}

func factorial(_ number: Int) -> throws Int {

    if number < 0 {
        throw error
    }
    var result: Int = 1

    for item in 1...number {
        result = item * result
    }
    return result
}
struct Awesome {
    var name: String

    init(name: String) {
        self.name = name
    }
}

let obj1 = Awesome(name: "123")
let obj2 = Awesome(name: "456")

let array1 = [obj1, obj2]
let array2 = array1

array2[0].name = "000"
print(array1[0].name) // 123
class Service {
    func getData(completion: @escaping (String) -> Void) {
        DispatchQueue.main.asyncAfter(deadline: .now() + 20.0) {
            completion("hello world")
        }
    }
}

class ViewController: UIViewController {
    let service = Service()
    let label = UILabel()

    override func viewDidLoad() {
        super.viewDidLoad()
        service.getData { (data) in
            self.label.text = data
        }
    }
}
class MyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        print(2)
        DispatchQueue.main.async {
            print(3)
            DispatchQueue.main.async { print(5) }
            print(4)
        }
        print(6)
    }
}

let vc = MyViewController()
print(1)
vc.view
print(7)

//// 1 2 6 7 3 4 5
final class Tracker {
    private init() {}

    static let shared = Tracker()

    func track(event: String) {
        print("Event (event)")
    }
}

// MARK: - Наш код

final class Analytics {
    func trackScreen() {
        Tracker.shared.track(event: "Screen")
    }
}