Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-------------------task1--------------------------
- //1. Создайте пару функций с короткими именами, которые возвращают строку с классным символом или символами. Например heart() возвращает сердце и т.п. Вызовите все эти функции внутри принта для вывода строки этих символов путем конкатенации.
- print("task1")
- print()
- func heart() -> String {
- return "\u{1F496}"
- }
- func dollar() -> String {
- return "\u{1F425}"
- }
- func ensign() -> String {
- return "\u{1F1F7}\u{1F1FA}"
- }
- print(dollar() + heart() + ensign())
- print()
- //-------------------task2--------------------------
- //2. Опять шахматные клетки. Реализовать функцию, которая принимает букву и символ и возвращает строку “белая” или “черная”. Строку потом распечатайте в консоль
- print("task2")
- print()
- var dict = [String: String]()
- let coins = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"]
- for i in 0..<coins.count {
- for k in 0...9 {
- if i % 2 == k % 2 {
- dict["\(coins[i])\(k)"] = "white"
- } else {
- dict["\(coins[i])\(k)"] = "black"
- }
- }
- }
- //При реализации в одну строку приходится делать force unraping, а ты сам ругался, что это не есть хорошо...
- func my1(letter: String, number: Int)
- -> String {
- return dict["\(letter)\(String(number))"]!
- }
- print(my1(letter: "A", number: 5))
- //А при использовании optional bounding в одну строчку не выходит((
- print()
- func my2(letter: String, number: Int) -> String? {
- return (dict["\(letter)\(String(number))"])
- }
- print(my2(letter: "C", number: 4))
- print()
- //-------------------task3--------------------------
- //3. Создайте функцию, которая принимает массив, а возвращает массив в обратном порядке. Можете создать еще одну, которая принимает последовательность и возвращает массив в обратном порядке. Чтобы не дублировать код, сделайте так, чтобы функция с последовательностью вызывала первую.
- print("task3")
- print()
- let basicArray = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]
- print("Исходный массив \(basicArray)")
- func reversedArray(array: [String]) -> [String] {
- var temp = [String]()
- for i in basicArray.reversed() {
- temp += [i]
- }
- return temp
- }
- print("Массив в обратном порядке \(reversedArray(array: basicArray))")
- func customArray(array: [String]) -> [String] {
- return ((reversedArray(array: basicArray).reversed()))
- }
- print("Исходный, после всей этой дрочки \(customArray(array: reversedArray(array: basicArray)))")
- print()
- //-------------------task4--------------------------
- //4. Разберитесь с inout самостоятельно и выполните задание номер 3 так, чтобы функция не возвращала перевернутый массив, но меняла элементы в существующем. Что будет если убрать inout?
- print("task4")
- print()
- var array = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]
- print("Исходный массив \(basicArray)")
- func arrayChange(_ array: inout [String]) -> () {
- array = array.reversed()
- }
- arrayChange(&array)
- print("С измененными элементами \(array)")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement