2014-11-12 13 views

Odpowiedz

56

Nie można przypisać wartość ciągu do Bool ale można to sprawdzić str1 jest zerowa lub nie podoba ten sposób:

myBool = str1 != nil ? true : false 
print(myBool) 

To będzie drukować fałszywe, ponieważ str1 jest pusty.

+4

Nie potrzebujesz wyrażenia warunkowego, po prostu wykonaj: 'myBool = str1! = Zero' – TimK

+1

Myślę, że warunkowe było pokazanie składni – jarryd

48

Operator koalesminacji zerowej może również być użyty. poniżej kodu wykorzystuje trójskładnikowego operatora warunkowego i wymuszonego odwijania (A!), Aby uzyskać dostęp do wartości owinięty Wewnątrz gdy nie jest zerowa, a powrót b inaczej

Normalny trójskładnikowych operatora:

output = a != nil ? a! : b Apple Developer Link: Proszę odnieść się do Demo Link

W Swift 1.2 & 2, powyżej linii kodu zastąpiono krótszym formacie:

output = a ?? b 

Demo Link: Operator zerowego koalescencji (a ?? b) rozwija opcję opcjonalną a, jeśli zawiera wartość, lub zwraca wartość domyślną b, jeśli a jest zerowe.

1

To nawet dobrze, jeśli wartość chcesz to nieruchomość lub wynikiem wywołania funkcji na opcjonalny (w Swift 3.0):

return peripheral?.connected ?? false 
+0

, która nie odpowiada na to samo pytanie, ponieważ zakładasz, że chcemy wartości - jeśli istnieje i nie ma niczego innego. Chociaż chcemy dwóch różnych wyrażeń - opartych na arbitralnych warunkowych. coś jak> 3? (4 + 7): (6/4) w C. –

0

W przypadku porównanie opiera się na pewnym warunkiem

let sliderValue = Float(self.preferenceData.getLocationRadius().characters.count > 1 ?self.preferenceData.getLocationRadius():"0.1") 

W tym miejscu funkcja getLocationRadius() zwraca ciąg znaków. Jeszcze jedno, jeśli nie wstawiamy spacji od 1 do? Powoduje to błąd składni

0

Ternary operators operate on three targets. Like C, Swift has only one ternary operator, the ternary conditional operator (a ? b : c).

Przykład użycia w tableView -

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return section == 2 ? 4 : 1 
} 

wskazuje, czy sekcja równe 2, a następnie powrót 4 inaczej 1 na fałszywe.

Powiązane problemy