abcdefg12345
Alkuperäinen juliste- 10. heinäkuuta 2013
- 21. lokakuuta 2017
nopea 4
Koodi: |_+_|
Käytän muuttujamerkkijonoa, koska tarvitsen sen olevan merkkijono, jotta voin muotoilla sen myöhemmin, määritin sen
Koodi: |_+_|
abcdefg12345
Alkuperäinen juliste- 10. heinäkuuta 2013
- 21. lokakuuta 2017
Koodi: |_+_|
0002378
Keskeytetty
- 28. toukokuuta 2017
- 23. lokakuuta 2017
Ja vaikka valinnaisilla on omat etunsa, ne saavat minut myös haluamaan iskeä tietokoneeni roska-astian yläreunoja vasten.
Kuitenkin, missä Swift todella potkii perseeseen, se on sulkemisosastolla ... ai joo! Javallakin on niitä nyt, mutta...
Ja tietysti se, että Swift on vähemmän tiukka tyyppien ilmoittamisessa ja noissa ärsyttävissä puolipisteissä... mahtavaa!
Reaktiot:abcdefg12345
0002378
Keskeytetty
- 28. toukokuuta 2017
- 24. lokakuuta 2017
Et tarvitse uutta muuttujaa. Voit vain lisätä '!' Double(merkkijonoosi), ja se toimii.
Luulen, että olin väärässä, kun Swift oli tyhmä tässä tapauksessa. Mutta olen kohdannut monia tällaisia kääntäjävalituksia (en voi verrata kahta erilaista numeerista tyyppiä).
Greene
- 15. heinäkuuta 2015
- Fort Worth
- 24. lokakuuta 2017
Tai voit käyttää valinnaista sidontaa arvon purkamiseen. Kokeilen ensin jotakin näistä menetelmistä ennen kuin käytän pakkopurkausta
gnasher729
Keskeytetty
- 25. marraskuuta 2005
- 24. lokakuuta 2017
maculateConception sanoi: Minusta Swift kielenä on välillä aika naurettavaa, esim. tulee Java-ohjelmoinnista. Ja toit yhden parhaista esimerkeistä siitä.Se on aika tietämätöntä. Ongelmana on, että OP ei tiedä Swiftin perusominaisuuksista, jotka ovat valinnaisia arvoja. Konstruktori Double(String) voi ilmeisesti epäonnistua, jos merkkijono ei sisällä numeroa. Siksi Double (String) ei tuota eikä voi tuottaa tulosta, jonka tyyppi on Double, mutta yksi tyyppinen Double? , se on valinnainen Double. Ja valinnaista Double ei voi verrata Int.
'Ratkaisusi' on todella, todella kauhea. ! tarkoittaa 'Olen varma, että tämä muunnos onnistuu.' Jos ei, kaada sovellus. olkoon d = Double ('1234x')! kaatuu vain. Tarkoituksella. Koska et tarkistanut nollaa, ja se oli nolla.
Oikea tapa on tarkistaa virhe. Esimerkiksi
jos d = Double (OmaArvo), d > 10 {
// MyValue sisälsi luvun, ja luku on > 10.
} muu {
// MyValue ei sisältänyt numeroa tai numero oli<= 10.
}
Jos mielestäsi kannattaa kirjoittaa turvallista ja todella toimivaa koodia, niin Swift on oikea kieli.
0002378
Keskeytetty
- 28. toukokuuta 2017
- 24. lokakuuta 2017
gnasher729 sanoi: Se on aika tietämätöntä. Ongelmana on, että OP ei tiedä Swiftin perusominaisuuksista, jotka ovat valinnaisia arvoja. Konstruktori Double(String) voi ilmeisesti epäonnistua, jos merkkijono ei sisällä numeroa. Siksi Double (String) ei tuota eikä voi tuottaa tulosta, jonka tyyppi on Double, mutta yksi tyyppinen Double? , se on valinnainen Double. Ja valinnaista Double ei voi verrata Int.
Onko sinua kiusattu koulussa? Sinulla näyttää olevan melko alhainen itsetunto, koska et voinut vastata hyökkäämättä minua vastaan.
Tämä on ensimmäinen ja viimeinen viestini sinulle. Ehdotus sinulle - yritä kommunikoida sivistyneemmällä tavalla, niin elämästä tulee hienoa. Pitää huolta.
Greene
- 15. heinäkuuta 2015
- Fort Worth
- 25. lokakuuta 2017
gnasher729 sanoi: Oikea tapa on tarkistaa virhe. Esimerkiksi
jos d = Double (OmaArvo), d > 10 {
// MyValue sisälsi luvun, ja luku on > 10.
} muu {
// MyValue ei sisältänyt numeroa tai numero oli<= 10.
}
Tämä on epäselvää - entä jos arvo on<= 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.
Paljon puhtaampi tapa olisi:
Koodi: |_+_|
Vaikka olen todella sitä mieltä, että MyValue tulisi tallentaa Double alusta alkaen ja NumberFormatter ottaa käyttöön myöhemmin käsittelemään mitä tahansa muotoilua. Sillä on paljon pienempi kognitiivinen taakka sille, joka päätyy lukemaan koodia.
gnasher729
Keskeytetty
- 25. marraskuuta 2005
- 26. lokakuuta 2017
maculateConception sanoi: Kiusattiinko sinua koulussa? Sinulla näyttää olevan melko alhainen itsetunto, koska et voinut vastata hyökkäämättä minua vastaan.
Tämä on ensimmäinen ja viimeinen viestini sinulle. Ehdotus sinulle - yritä kommunikoida sivistyneemmällä tavalla, niin elämästä tulee hienoa. Pitää huolta.
No, en hyökännyt sinua vastaan. Hyökkäsin viestiäsi, joka osoittaa, että tiedät hyvin vähän Swiftistä, ja sisälsin yhden erittäin vaarallisen suosituksen. S
SAIRUS
to
- 21. elokuuta 2008
- 26. lokakuuta 2017
lisää
- 14. huhtikuuta 2018
- 14. huhtikuuta 2018
1) '!' Voit ilmoittaa, että tämä arvo on tarkka int lisäämällä merkin.
Koodi: |_+_| 2) Voit määrittää tyypin määrittäessäsi arvoa.
Koodi: |_+_| TO
yrityksissä
- 28. tammikuuta 2006
- 27. huhtikuuta 2018
ynstek sanoi: Swift, ei ole varma, että arvosi on tarkalleen int. On kaksi vaihtoehtoa varmistaaksesi.
1) '!' Voit ilmoittaa, että tämä arvo on tarkka int lisäämällä merkin.
Koodi: |_+_| 2) Voit määrittää tyypin määrittäessäsi arvoa.
Koodi: |_+_|
Luulen, että esimerkkisi nro 2 epäonnistuisi, koska yrität määrittää merkkijonon int-muuttujan kaksoiskappaleelle. Oletat myös, että MyValue ei ole nolla, mikä voi aiheuttaa ajonaikaisen virheen, jos se on nolla tai ei-numeerinen.
Myöskään esimerkkiselityksesi #1 ei ole oikea. Huutomerkki ei muuta arvoa Int. Se avaa valinnaisen muuttujan arvon. Esimerkissäsi päädyt Double-arvoon, ei Int-arvoon, ja vain jos MyValue ei ole nolla tai ei-numeerinen arvo.
Suosittu Viestiä