Я хочу развернуть эти 6 необязательных переменных, и если они нулевые, я хочу дать им пустое значение String. Это значит, что я могу отправить эти переменные в массив параметров, отправленный в API.Как сконденсировать разворачивание нескольких опций в Swift?
Я все еще новичок в Swift, и это единственный простой способ понять, как реализовать это, но внутренний кодер во мне говорит, что это выглядит излишним и дерьмовым, как ****.
Может ли кто-нибудь помочь мне сконденсировать это или сделать его проще?
if let fbEmail = self.fbEmail {
}else{
self.fbEmail = ""
}
if let fbDob = self.fbDob {
}else{
self.fbDob = ""
}
if let fbGender = self.fbGender {
}else{
self.fbGender = ""
}
if let fbUserIp = self.fbUserIp {
}else{
self.fbUserIp = ""
}
if let fbFacebookId = self.fbFacebookId {
}else{
self.fbFacebookId = ""
}
if let fbFacebookAccessToken = self.fbFacebookAccessToken {
}else{
self.fbFacebookAccessToken = ""
}
Согласен; Я думаю, что optionals следует использовать только для переменных, которые не имеют значимого значения по умолчанию для их инициализации, или, иначе, должны иметь возможность отмечать состояние «не задано». –
@NicolasMiari Соглашайтесь полностью, соглашаясь со мной и другими вашими соображениями :) Они могут понадобиться, потому что функция, которая используется для извлечения значения, может вернуть нуль. Использование didSet в этом случае для сброса по умолчанию является хорошим исправлением. –
Это был отличный и всеобъемлющий ответ! Спасибо, Ренке. Я действительно рассмотрел решения, просто объявляя начальное «пустое значение», однако это повлияло бы на другие функции, которые у меня есть, чтобы проверить, является ли эта переменная необязательной или нет. Например, fbEmail является необязательным, и я могу дать ему «» по умолчанию, но тогда функция isEmailExist() будет работать некорректно, потому что будет думать, что пустая строка означает, что письмо существует. Так что, по сути, я не думаю, что какое-либо из этих решений работает :( Ps. Я попробовал «развернуть более 1 за один раз», мне нужно понять, не определены ли некоторые вары:/ – trixmasta