Помощь в решении задачи


#1

Приветствую друзья.

Читаю книгу по свифту и так же пытаюсь решить оттуда задания. В общем застрял на одном задании…
А точнее на пункте 4.

Задание

(1). Создайте псевдноним типа String с именем Text.

(3). Объявите три константы типа Text. Значение двух констант должны состоять только из цифр, третей - из цифр и букв.

(3). Из всех трех констант найдите те, которые состоят только из цифр, и выведите их на консоль. Для преобразования строки в число используйте функцию Int( ).

(4). Создайте псевдоним для типа(numberOne: Text?, numberTwo: Text?)? с именем TupleType. Данный тип является опциональным и также содержит в себе опциональные значения.

(5). Создайте три переменные типа TupleType, содержащие следующие значения: (“190”, “67”), (“100”, nil), ("-65",“70”).

(6). Выведите значения элементов тех кортежей, в которых ни один из элементов не инициализирован как nil.


#2

По всей видимости так:

typealias Text = String
typealias TupleType = (numberOne: Text?, numberTwo: Text?)?
let tt: TupleType = ("190", "67")

#3

А как решается 6-й пункт?

print(varOne?.NumberOne) // консоль Optional(“190”)
Или как-то по другому можно вывести?


#4
if let number = varOne?.NumberOne {
  print(number)
}

#5

Я решил это задание так:

typealias Text = String typealias TupleType = (numberOne: Text?, numberTwo: Text?)? var tupleOne:TupleType = ("190","67"), tupleTwo:TupleType = ("100","nil"), tupleThree:TupleType = ("-65","70") if (Int(tupleOne!.numberOne!) != nil) && (Int(tupleOne!.numberTwo!) != nil) { print(tupleOne)} if (Int(tupleTwo!.numberOne!) != nil) && (Int(tupleTwo!.numberTwo!) != nil) { print(tupleTwo)} if (Int(tupleThree!.numberOne!) != nil) && (Int(tupleThree!.numberTwo!) != nil) { print(tupleThree)}


#6

Почему у тебя в tupleTwo значение “nil” с кавычками записано? в задании без кавычек “Создайте три переменные типа TupleType, содержащие следующие значения: (“190”, “67”), (“100”, nil) , (”-65", “70”). " Опечатка?


#7

Помоему тут нет правильного ответа.
Я вот уже 3 часа бьюсь с этой задачей так и не понял как ее решить.


#8

typealias TupleType = (numberOne: text?, numberTwo: text?)?

var b1: TupleType = (“190”,“67”)
var b2: TupleType = (“100”,nil)
var b3: TupleType = ("-65",“70”)

if b1!.0 != nil && b1!.1 != nil { print(b1!)}
if b2!.0 != nil && b2!.1 != nil { print(b2!)}
if b3!.0 != nil && b3!.1 != nil { print(b3!)}

Разве такой вариант не получается проще? В данном случае не надо делать операцию Int ().


#9

c 1-3 пункт решил так
typealias Text = String
let a:Text = “12”
let b:Text = “22”
let c:Text = “22b”
var tx:(Text,Text,Text)=("","","")
if varTexting = Int(a){
tx.0=a }
if var Texting = Int(b){
tx.1=b }
if var Texting = Int©{
tx.2=c }
print(tx)