abcdefg12345
Originalus plakatas- 2013 m. liepos 10 d
- 2017 m. spalio 21 d
greitas 4
Kodas: |_+_|
aš naudoju kintamąją eilutę, nes man reikia, kad ji būtų eilutė, kad galėčiau ją formatuoti vėliau, apibrėžiau kaip
Kodas: |_+_|
abcdefg12345
Originalus plakatas- 2013 m. liepos 10 d
- 2017 m. spalio 21 d
Kodas: |_+_|
0002378
Sustabdytas
- 2017 m. gegužės 28 d
- 2017 m. spalio 23 d
Ir nors pasirinktiniai turi savo privalumų, jie taip pat verčia mane daužyti kompiuterį į viršutinius šiukšliadėžės kraštus.
Tačiau ten, kur Swift iš tikrųjų puola, yra uždarymo skyrius... o taip! „Java“ taip pat turi juos dabar, bet ...
Ir, žinoma, tai, kad „Swift“ yra ne toks griežtas nurodydamas tipus ir tuos įkyrius kabliataškius... nuostabu!
Reakcijos:abcdefg12345
0002378
Sustabdytas
- 2017 m. gegužės 28 d
- 2017 m. spalio 24 d
Jums nereikia naujo kintamojo. Galite tiesiog pridėti „! į savo Double(stygą), ir jis veiks.
Manau, klydau, kad Swift šiuo atveju buvo kvaila. Tačiau aš susidūriau su daugybe tokių kompiliatorių skundų (negaliu palyginti dviejų skirtingų skaičių tipų).
Greene
- 2015 m. liepos 15 d
- Fort Vertas
- 2017 m. spalio 24 d
Arba galite naudoti pasirenkamą įrišimą, kad išvyniotumėte vertę. Pirmiausia išbandyčiau vieną iš šių metodų, prieš pradėdamas naudoti jėgos išvyniojimą
gnasher729
Sustabdytas
- 2005 m. lapkričio 25 d
- 2017 m. spalio 24 d
maculateConception sakė: Manau, kad Swift, kaip kalba, kartais yra juokinga, ypač. ateina iš Java programavimo. Ir jūs pateikėte vieną geriausių to pavyzdžių.Tai gana beprasmiška. Problema ta, kad OP nežino pagrindinės „Swift“ funkcijos, ty pasirenkamos reikšmės. Konstruktorius Double(String) akivaizdžiai gali sugesti, jei eilutėje nėra skaičiaus. Štai kodėl Double (String) neduoda ir negali sukurti Double tipo rezultato, o vieno tipo Double? , tai yra pasirenkamas dvigubas. Ir pasirenkamas Dvivietis negali būti lyginamas su Int.
Jūsų „sprendimas“ yra tikrai labai baisus. ! reiškia „Esu tikras, kad ši konversija bus sėkminga“. Jei ne, sugadinkite programą. tegul d = dvigubas ('1234x')! tiesiog sugrius. Tyčia. Nes tu nepatikrinei nulio, o buvo nulis.
Teisingas būdas yra patikrinti, ar nėra klaidos. Pavyzdžiui
jei tegul d = dvigubas (mano vertė), d > 10 {
// „MyValue“ yra skaičius, o skaičius yra > 10.
} Kitas {
// „MyValue“ nebuvo skaičiaus arba skaičius buvo<= 10.
}
Jei manote, kad verta parašyti kodą, kuris yra saugus ir iš tikrųjų veikia, tada „Swift“ yra tinkama kalba.
0002378
Sustabdytas
- 2017 m. gegužės 28 d
- 2017 m. spalio 24 d
gnasher729 pasakė: Tai visai neaišku. Problema ta, kad OP nežino pagrindinės „Swift“ funkcijos, ty pasirenkamos reikšmės. Konstruktorius Double(String) akivaizdžiai gali sugesti, jei eilutėje nėra skaičiaus. Štai kodėl Double (String) neduoda ir negali sukurti Double tipo rezultato, o vieno tipo Double? , tai yra pasirenkamas dvigubas. Ir pasirenkamas Dvivietis negali būti lyginamas su Tarpt.
Ar iš jūsų buvo priekabiaujama mokykloje? Atrodo, kad tu turi gana žemą savigarbą, nes negalėjai atsakyti manęs neužpuldamas.
Tai bus pirmas ir paskutinis mano bendravimas su jumis. Pasiūlymas jums – pabandykite bendrauti pilietiškiau, ir gyvenimas bus puikus. Pasirūpink.
Greene
- 2015 m. liepos 15 d
- Fort Vertas
- 2017 m. spalio 25 d
gnasher729 pasakė: teisingas būdas yra klaidos tikrinimas. Pavyzdžiui
jei tegul d = dvigubas (mano vertė), d > 10 {
// „MyValue“ yra skaičius, o skaičius yra > 10.
} Kitas {
// „MyValue“ nebuvo skaičiaus arba skaičius buvo<= 10.
}
Tai dviprasmiška – o jei vertė yra<= 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.
Daug švaresnis būdas būtų:
Kodas: |_+_|
Nors tikrai manau, kad „MyValue“ nuo pat pradžių turėtų būti saugomas kaip „Double“, o vėliau įdiegtas „NumberFormatter“, kad būtų galima apdoroti bet kokį reikalingą formatavimą. Tai turi daug mažesnę pažinimo naštą tiems, kurie skaito kodą.
gnasher729
Sustabdytas
- 2005 m. lapkričio 25 d
- 2017 m. spalio 26 d
maculateConception pasakė: ar iš jūsų buvo priekabiaujama mokykloje? Atrodo, kad tu turi gana žemą savigarbą, nes negalėjai atsakyti manęs neužpuldamas.
Tai bus pirmas ir paskutinis mano bendravimas su jumis. Pasiūlymas jums – pabandykite bendrauti pilietiškiau, ir gyvenimas bus puikus. Pasirūpink.
Na, aš tavęs nepuoliau. Užpuoliau jūsų įrašą, kuris parodo, kad jūs labai mažai žinote apie „Swift“, ir įtraukiau vieną labai pavojingą rekomendaciją. S
SAIRUS
į
- 2008 m. rugpjūčio 21 d
- 2017 m. spalio 26 d
Įdėti
- 2018 m. balandžio 14 d
- 2018 m. balandžio 14 d
1) '!' galite nurodyti, kad ši reikšmė bus tiksli int, pridėdami ženklą.
Kodas: |_+_| 2) Apibrėždami reikšmę galite nurodyti tipą.
Kodas: |_+_| KAM
įmonėse
- 2006 m. sausio 28 d
- 2018 m. balandžio 27 d
ynstek pasakė: Swift, nesate tikras, kad jūsų vertė yra tiksliai tarpinė. Yra dvi galimybės įsitikinti.
1) '!' galite nurodyti, kad ši reikšmė bus tiksli int, pridėdami ženklą.
Kodas: |_+_| 2) Apibrėždami reikšmę galite nurodyti tipą.
Kodas: |_+_|
Manau, kad jūsų 2 pavyzdys nepavyks, nes bandote priskirti eilutę Int kintamojo dubliui. Be to, darote prielaidą, kad MyValue nėra nulis, o tai gali sukelti vykdymo klaidą, jei ji yra nulis arba ji nėra skaitinė.
Jūsų paaiškinimo Nr. 1 pavyzdys taip pat nėra teisingas. Šauktukas nekeičia reikšmės į Int. Jis išskleidžia pasirenkamo kintamojo reikšmę. Jūsų pavyzdyje turėtumėte gauti dvigubą reikšmę, o ne Int, ir tik tuo atveju, jei MyValue nebūtų nulis arba ne skaitinė reikšmė.
Populiarios Temos