четверг, 22 июня 2017 г.

Swift 4. The Basics (Optionals)

В этом уроке рассматриваются опционалы - типы у которых значения, могут быть  nil.

Домашнее задание:

1. Создать пять строковых констант

Одни константы это только цифры, другие содержат еще и буквы

Найти сумму всех этих констант приведя их к Int

(Используйте и optional binding и forced unwrapping)

2. С сервера к нам приходит тюпл с тремя параметрами:

statusCode, message, errorMessage (число, строка и строка)

в этом тюпле statusCode всегда содержит данные, но сама строка приходит только в одном поле

если statusCode от 200 до 300 исключительно, то выводите message,

в противном случает выводите errorMessage

После этого проделайте тоже самое только без участия statusCode

3. Создайте 5 тюплов с тремя параметрами:

имя, номер машины, оценка за контрольную

при создании этих тюплов не должно быть никаких данных

после создания каждому студенту установите имя

некоторым установите номер машины

некоторым установите результат контрольной

выведите в консоль:

- имена студента
- есть ли у него машина
- если да, то какой номер
- был ли на контрольной
- если да, то какая оценка


//Lesson 4. Optional

/*
 1. Создать пять строковых констант

 Одни константы это только цифры, другие содержат еще и буквы

 Найти сумму всех этих констант приведя их к Int

 (Используйте и optional binding и forced unwrapping)
 */

print("1\n")
var sum = 0
let (value1, value2, value3, value4, value5) = ("2", "4b", "1", "1a", "5")
if let intValue1 = Int(value1) {
    sum += intValue1
}
if let intValue2 = Int(value2) {
    sum += intValue2
}
if let intValue3 = Int(value3) {
    sum += intValue3
}
if let intValue4 = Int(value4) {
    sum += intValue4
}

if Int(value5) != nil  {
    sum += Int(value5)!
}

print("Sum:", sum)

/*
 2. С сервера к нам приходит тюпл с тремя параметрами:

 statusCode, message, errorMessage (число, строка и строка)

 в этом тюпле statusCode всегда содержит данные, но сама строка приходит только в одном поле

 если statusCode от 200 до 300 исключительно, то выводите message,

 в противном случает выводите errorMessage

 После этого проделайте тоже самое только без участия statusCode
 */

print("\n2.1\n")

let response: (statusCode: Int, message: String?, errorMessage: String?) = (300, "Response", nil)
if response.statusCode >= 200 && response.statusCode <= 300 {
    if let message = response.message {
        print("Success. Message:", message)
    } else {
        print("Success. No Message:")
        
    }
} else {
    if let message = response.errorMessage {
        print("Error. Message:", message)
    } else {
        print("Error. No Message:")
    }
}

print("\n2.2\n")

if let message = response.message {
    print("Success. Message:", message)
} else if let errorMessage = response.errorMessage {
    print("Error. Message:", errorMessage)
} else {
    print("Error. No Message:")
}

/*
 3. Создайте 5 тюплов с тремя параметрами:

 имя, номер машины, оценка за контрольную

 при создании этих тюплов не должно быть никаких данных

 после создания каждому студенту установите имя

 некоторым установите номер машины

 некоторым установите результат контрольной

 выведите в консоль:

 - имена студента
 - есть ли у него машина
 - если да, то какой номер
 - был ли на контрольной
 - если да, то какая оценка */

print("\n3\n")

var student1: (name: String?, carNumber: String?, mark: Double?)
var student2: (name: String?, carNumber: String?, mark: Double?)
var student3: (name: String?, carNumber: String?, mark: Double?)
var student4: (name: String?, carNumber: String?, mark: Double?)
var student5: (name: String?, carNumber: String?, mark: Double?)

student1.name = "Vasya"
student2.name = "Petia"
student3.name = "Ivan"
student4.name = "Nikolay"
student5.name = "Alex"

student1.carNumber = "AK54"
student1.mark = 4.5
student2.mark = 3.1
student5.carNumber = "RUS"

let arrayStudent = [student1, student2, student3, student4, student5]
for student: (name: String?, carNumber: String?, mark: Double?) in arrayStudent {
    let (name, carNumber, mark) = student
    if let realName = name {
        print("Name:", realName, terminator: " ")
    }
    if let realNumber = carNumber {
        print("Car:", realNumber, terminator: " ")
    }
    if let realmark = mark {
        print("Mark:", realmark, terminator: " ")
    }
    print("")

}

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

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