abcdefg12345
Eredeti plakát- 2013. július 10
- 2017. október 21
gyors 4
Kód: |_+_|
változó karakterláncot használok, mert szükségem van arra, hogy karakterlánc legyen, hogy később formázhassam, így definiáltam
Kód: |_+_|
abcdefg12345
Eredeti plakát- 2013. július 10
- 2017. október 21
Kód: |_+_|
0002378
Felfüggesztett
- 2017. május 28
- 2017. október 23
És bár az opcionálisnak megvannak a maguk előnyei, arra is késztetnek, hogy összetörjem a számítógépemet egy szeméttároló felső szélével.
Ahol azonban Swift tényleg dühöng, az a bezárások osztálya... ó, igen! Most már a Java-ban is vannak ilyenek, de...
És persze az a tény, hogy a Swift kevésbé szigorú a típusok megadásakor és azok a bosszantó pontosvesszők... fantasztikus!
Reakciók:abcdefg12345
0002378
Felfüggesztett
- 2017. május 28
- 2017. október 24
Nem kell új változó. Csak hozzáadhatja a '!' a Double(karakterlánc)-ra, és működni fog.
Azt hiszem, tévedtem, hogy Swift hülye ebben az esetben. De sok esetben találkoztam ilyen fordítói panaszokkal (két különböző numerikus típust nem tudok összehasonlítani).
Greene
- 2015. július 15
- Fort Worth
- 2017. október 24
Vagy használhatja az opcionális összerendelést az érték kibontásához. Először kipróbálnám a fenti módszerek egyikét, mielőtt erőltetett kicsomagolást használnék
gnasher729
Felfüggesztett
- 2005. november 25
- 2017. október 24
maculateConception mondta: Szerintem a Swift nyelvként néha elég nevetséges, pl. Java programozásból származik. És erre az egyik legjobb példát hoztad fel.Ez elég tanácstalan. A probléma az, hogy az OP nem tud a Swift egyik alapvető funkciójáról, ami az opcionális értékek. A Double(String) konstruktor nyilvánvalóan meghibásodhat, ha a String nem tartalmaz számot. Ez az oka annak, hogy a Double (String) nem hoz és nem is hoz létre Double típusú eredményt, de kettős típusú eredményt? , ez egy opcionális Double. És az opcionális Double nem hasonlítható össze egy Int.
A 'megoldásod' nagyon-nagyon szörnyű. Az ! azt jelenti: „Biztos vagyok benne, hogy ez az átalakítás sikeres lesz. Ha nem, akkor kérjük, összeomlik az alkalmazást. legyen d = Dupla ('1234x')! csak összeomlik. Szándékosan. Mert nem ellenőrizted a nullát, és az nulla volt.
A helyes módszer a hiba ellenőrzése. Például
ha d = Dupla (SajátÉrték), d > 10 {
// A MyValue egy számot tartalmazott, és a szám > 10.
} más {
// A MyValue nem tartalmazott számot, vagy a szám igen<= 10.
}
Ha úgy gondolja, hogy érdemes olyan kódot írni, amely biztonságos és valóban működik, akkor a Swift a megfelelő nyelv.
0002378
Felfüggesztett
- 2017. május 28
- 2017. október 24
gnasher729 azt mondta: Ez elég tanácstalan. A probléma az, hogy az OP nem tud a Swift egy alapvető funkciójáról, ami az opcionális értékek. A Double(String) konstruktor nyilvánvalóan meghibásodhat, ha a String nem tartalmaz számot. Ez az oka annak, hogy a Double (String) nem hoz és nem is tud Double típusú eredményt produkálni, de Double típusút? , ez egy opcionális Double. És az opcionális Double nem hasonlítható össze egy Int.
Zaklatottak az iskolában? Úgy tűnik, elég alacsony az önbecsülésed, mert nem tudtál úgy válaszolni, hogy ne támadj meg.
Ez lesz az első és utolsó közlésem önnel. Javaslat Önnek – próbáljon meg civilizáltabban kommunikálni, és az élet nagyszerű lesz. Vigyázz magadra.
Greene
- 2015. július 15
- Fort Worth
- 2017. október 25
gnasher729 azt mondta: A helyes módszer a hiba ellenőrzése. Például
ha d = Dupla (SajátÉrték), d > 10 {
// A MyValue egy számot tartalmazott, és a szám > 10.
} más {
// A MyValue nem tartalmazott számot, vagy a szám igen<= 10.
}
Ez kétértelmű – mi van, ha az érték lény<= 10 should produce different results from the value being nil? To be fair, the OP's post is ambiguous as they were forcing the unwrap, meaning a nil value would crash. However in most business cases, a nil value would be handled differently (safely) from an insufficient value.
Sokkal tisztább módszer lenne:
Kód: |_+_|
Bár tényleg úgy gondolom, hogy a MyValue-t kezdettől fogva Double-ként kell tárolni, és később megvalósítani egy NumberFormatter-t, hogy kezelje a szükséges formázásokat. Ez sokkal kisebb kognitív terhet jelent annak számára, aki végül elolvassa a kódot.
gnasher729
Felfüggesztett
- 2005. november 25
- 2017. október 26
maculateConception mondta: Zaklatottak az iskolában? Úgy tűnik, elég alacsony az önbecsülésed, mert nem tudtál úgy válaszolni, hogy ne támadj meg.
Ez lesz az első és utolsó közlésem önnel. Javaslat Önnek – próbáljon meg civilizáltabban kommunikálni, és az élet nagyszerű lesz. Vigyázz magadra.
Hát, nem támadtalak meg. Megtámadtam a bejegyzésedet, amely azt mutatja, hogy nagyon keveset tudsz a Swiftről, és tartalmaztam egy nagyon veszélyes ajánlást. S
SAIRUS
nak nek
- 2008. augusztus 21
- 2017. október 26
betét
- 2018. április 14
- 2018. április 14
1) '!' a jel hozzáadásával jelezheti, hogy ez az érték pontos int lesz.
Kód: |_+_| 2) Az érték megadásakor megadhatja a típust.
Kód: |_+_| NAK NEK
vállalatoknál
- 2006. január 28
- 2018. április 27
ynstek mondta: Swift, nem biztos, hogy az értéke pontosan int. Két lehetőség közül választhat.
1) '!' a jel hozzáadásával jelezheti, hogy ez az érték pontos int lesz.
Kód: |_+_| 2) Az érték megadásakor megadhatja a típust.
Kód: |_+_|
Azt hiszem, a 2-es példád kudarcot vall, mert egy Int-változó duplájához próbálsz hozzárendelni egy string castot. Azt is feltételezi, hogy a MyValue értéke nem nulla, ami futásidejű hibát okozhat, ha nulla vagy nem numerikus.
Az 1. számú példamagyarázata sem megfelelő. A felkiáltójel nem alakítja át az értéket Int. Kibontja az opcionális változó értékét. Példájában Dupla érték lesz, nem Int, és csak akkor, ha a MyValue nem nulla vagy nem numerikus érték.
Népszerű Bejegyzések