четверг, 25 января 2018 г.

Swift 10. Functions

В 10 уроке рассматриваются функции.
Домашнее задание к 10 уроку:

/*
 1. Создайте пару функций с короткими именами, которые возвращают строку с классным символом или символами. Например heart() возвращает сердце и т.п. Вызовите все эти функции внутри принта для вывода строки этих символов путем конкатенации.

 2. Опять шахматные клетки. Реализовать функцию, которая принимает букву и символ и возвращает строку “белая” или “черная”. Строку потом распечатайте в консоль

 3. Создайте функцию, которая принимает массив, а возвращает массив в обратном порядке. Можете создать еще одну, которая принимает последовательность и возвращает массив в обратном порядке. Чтобы не дублировать код, сделайте так, чтобы функция с последовательностью вызывала первую.

 4. Разберитесь с inout самостоятельно и выполните задание номер 3 так, чтобы функция не возвращала перевернутый массив, но меняла элементы в существующем. Что будет если убрать inout?

 5. Создайте функцию, которая принимает строку, убирает из нее все знаки препинания, делает все гласные большими буквами, согласные маленькими, а цифры меняет на соответствующие слова (9 -> nine и тд)
 */

/*
 1
 */

func cat() -> String {
    return "🐱"
}
func chik() -> String {
    return "🐥"
}
func dog() -> String {
    return "🐶"
}

func sheep() -> String {
    return "🐑"
}

print(cat() + chik() + dog() + sheep())

/*
 2
 */
print("\nN 2 \n")

func blackOrWhite(char: Character, digit yIndex: Int) -> String {
    let chessChars = "abcdefgh"
    if let index = chessChars.index(of: char) {
        let xIndex = index.encodedOffset
        return (xIndex + yIndex) % 2 > 0 ? "Black" : "White"
    } else {
        return "Error range"
    }
}
print("a2: ", blackOrWhite(char: "a", digit: 2))

/*
 3
 */
print("\nN 3 \n")
func reverseArray(intArray: [Int]) -> [Int] {
    return intArray.reversed()
}

func reverseSequence(intSequence: Int...) -> [Int] {
    return reverseArray(intArray: intSequence)
}



var array = [1, 2, 3, 4, 5]

let resultArray = reverseArray(intArray: array)

print("Start array: \(array). New  Array: \(resultArray)")

print("Finish sequence:", reverseSequence(intSequence: 10, 20, 30, 40, 50))

/*
 4
 */

print("\nN 4 \n")
func reverseCurrentArray(intArray: inout [Int]) {
    intArray = intArray.reversed()
}
print("Start array:", array)
reverseCurrentArray(intArray: &array)
    
print("After modify array:", array)

/*
 5
 */

print("\nN 5 \n")

var text = "1. Swift makes 1053 it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s Element type. For example:"

func textModification(text: inout String) {
    var resultText = ""
    let digitDictionary = [0: "Zero", 1: "One", 2: "Two", 3: "Three", 4: "Four", 5: "Five", 6: "Six", 7: "Seven", 8: "Eight", 9: "Nine"]
    for symbol in text {
        let lowerCaseSymbol = String(symbol).lowercased()
        switch lowerCaseSymbol {
        case "a", "e", "i", "o", "u", "y":
            resultText += lowerCaseSymbol.uppercased()
        case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m",
             "n", "p", "q", "r", "s", "t", "v", "w", "x", "z":
            resultText += lowerCaseSymbol
        case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9":
            if let word = digitDictionary[Int(lowerCaseSymbol)!] {
                resultText += word
            }
        default:
            resultText += " "
        }
        text = resultText
    }
}
print("Start Text: \n", text)
textModification(text: &text)

print("Modify Text: \n", text)


Console: 


🐱🐥🐶🐑

N 2 

a2:  White

N 3 

Start array: [1, 2, 3, 4, 5]. New  Array: [5, 4, 3, 2, 1]
Finish sequence: [50, 40, 30, 20, 10]

N 4 

Start array: [1, 2, 3, 4, 5]
After modify array: [5, 4, 3, 2, 1]

N 5 

Start Text: 
 1. Swift makes 1053 it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s Element type. For example:
Modify Text: 
 One  swIft mAkEs OneZeroFiveThree It EAsY tO crEAtE ArrAYs In YOUr cOdE UsIng An ArrAY lItErAl  sImplY sUrrOUnd A cOmmA sEpArAtEd lIst Of vAlUEs wIth sqUArE brAckEts  wIthOUt AnY OthEr InfOrmAtIOn  swIft crEAtEs An ArrAY thAt InclUdEs thE spEcIfIEd vAlUEs  AUtOmAtIcAllY InfErrIng thE ArrAY s ElEmEnt tYpE  fOr ExAmplE 

Комментариев нет:

Отправить комментарий