import Foundation //func calculateSumOfMoney(array: [Int]) -> Int { // var mutableArray = array // mutableArray.append(100_000) // // var finalSum = 0 // // for value in mutableArray { // finalSum += value // } // // return finalSum //} // // ////// Функция с возращаемым значением и неизменяемым параметром. Тип 1. ////func makeRichArray(array: [Int]) -> [Int] { //// var mutableArray = array //// mutableArray.append(100_000) //// //// return mutableArray ////} // // //// Функция без возращаемого значения, но с изменяемым параметром. Тип 2. //func makeRichArray(array: inout [Int]) { // array.append(100_000) //} // // //// Создать фунцкию, которая просто выводит в консоль какую либо надпись // //// Создать функцию, которая выводит в консоль надпись вида: //// "Число = 0", где 0 - это число, которое вы передали в качестве параметра // //// Создать функцию, которая принимает массив и возвращает какой-либо элемент, полученны с помощью массива ( например: сумму, ср. значение, кол-во и тд. ) // ////* Создать функцию, которая возводит число, переданное в качестве параметра по ссылке, в квадрат // // // // // // // // // //var walletArray = [100, 5, 10, 200, 5000] ////let result1Array = makeRichArray(array: walletArray) // ////print(result1Array) // //var johnWalletArray = [5000, 5000, 5000, 1000, 2000] //makeRichArray(array: &johnWalletArray) // //print(johnWalletArray) // // // // // // // // // // // // // // //let sumOfWallet = calculateSumOfMoney(array: walletArray) //print(sumOfWallet) // //print(walletArray) // //let sumOfJohnWallet = calculateSumOfMoney(array: johnWalletArray) //print(sumOfJohnWallet) // // //func sumOfArray(array: [Int]) // -> (sumOfArray: Int, middleNumber: Double) //{ // var sum = 0 // array.forEach { number in // sum += number // } // //// let middleNumber = Double(sum) / Double(array.count) //// //// return (sum, middleNumber) ////} //// //// //// ////print(sumOfArray(array: [2, 23, 23, 12, 2])) // // //func testFunc() { // print("Что? где?") // surpriseFunc() //} // //func surpriseFunc() { // print("Сюрприз!") //} // //testFunc() //testFunc() //surpriseFunc() // // Тем временем на сервере ... func getTemperature() -> Double { return Double.random(in: -10...10) } // Скачивает температуру func downloadDataFromInternet(completionFunc: @escaping (Double) -> Void) { // weather.com/getTemperature DispatchQueue.main.asyncAfter( deadline: DispatchTime(uptimeNanoseconds: 20_000_000_000), execute: { let temperature = getTemperature() completionFunc(temperature) } ) } downloadDataFromInternet { temperature in print(temperature) } func paint(color: String, completion: () -> Void) { completion() print("Рисуем при помощи цвета: \(color)") } paint(color: "Синий") { print("Мы порисовали") }