abcdefg12345
Orijinal afiş- 10 Tem 2013
- 21 Ekim 2017
hızlı 4
Kod: |_+_|
değişken bir dize kullanıyorum çünkü daha sonra biçimlendirebilmek için bir dize olmasına ihtiyacım var, onu şöyle tanımladım
Kod: |_+_|
abcdefg12345
Orijinal afiş- 10 Tem 2013
- 21 Ekim 2017
Kod: |_+_|
0002378
Askıya alındı
- 28 Mayıs 2017
- 23 Ekim 2017
Ve isteğe bağlı seçeneklerin faydaları olsa da, bilgisayarımı bir çöp kutusunun üst kenarlarına çarpmak istememe neden oluyorlar.
Ancak, Swift'in gerçekten kıçı tekmelediği yer, kapanışlar bölümünde ... oh evet! Java'da da var artık, ama ...
Ve elbette, Swift'in tür bildiriminde daha az katı olması ve bu sinir bozucu noktalı virgüller ... harika !
Tepkiler:abcdefg12345
0002378
Askıya alındı
- 28 Mayıs 2017
- 24 Ekim 2017
Yeni bir değişkene ihtiyacınız yok. Sadece '!' ekleyebilirsiniz Double(string)'inize ve işe yarayacak.
Sanırım Swift'in bu durumda aptal olması konusunda yanılmışım. Ancak, bu tür derleyici şikayetleriyle ilgili birçok durumla karşılaştım (iki farklı sayısal türü karşılaştıramıyorum).
yeşil
- 15 Tem 2015
- Fort Worth
- 24 Ekim 2017
Veya değeri açmak için isteğe bağlı bağlamayı kullanabilirsiniz. Force unwrap kullanmadan önce bu yöntemlerden birini denerdim.
gnasher729
Askıya alındı
- 25 Kasım 2005
- 24 Ekim 2017
maculateConception dedi ki: Bir dil olarak Swift'in zaman zaman oldukça gülünç olduğunu düşünüyorum, özellikle. Java programlamadan geliyor. Ve bunun en güzel örneklerinden birini gündeme getirdiniz.Bu oldukça bilgisiz. Sorun, OP'nin isteğe bağlı değerler olan Swift'in temel bir özelliğini bilmemesidir. String bir sayı içermiyorsa, Double(String) yapıcısı açıkça başarısız olabilir. Bu nedenle Double (String) Double türünde bir sonuç üretemez ve üretemez, ancak Double türünden bir sonuç üretebilir mi? , bu isteğe bağlı bir Double'dir. Ve isteğe bağlı bir Double, bir Int ile karşılaştırılamaz.
'Çözümünüz' gerçekten çok korkunç. NS ! 'Bu dönüşümün başarılı olacağından eminim' anlamına gelir. Olmazsa, lütfen uygulamayı kilitleyin'. d = Çift ('1234x') olsun! sadece çökecek. Kasten. Çünkü sıfır olup olmadığını kontrol etmedin ve sıfırdı.
Doğru yol, hatayı kontrol etmektir. Örneğin
d = Double (MyValue), d > 10 {
// MyValue bir sayı içeriyordu ve sayı > 10'dur.
} Başka {
// MyValue bir sayı içermiyordu veya sayı<= 10.
}
Güvenli ve gerçekten işe yarayan bir kod yazmanın faydalı olduğunu düşünüyorsanız, o zaman Swift doğru dildir.
0002378
Askıya alındı
- 28 Mayıs 2017
- 24 Ekim 2017
gnasher729 dedi ki: Bu oldukça bilgisiz. Sorun, OP'nin isteğe bağlı değerler olan Swift'in temel bir özelliğini bilmemesidir. String bir sayı içermiyorsa, Double(String) yapıcısı açıkça başarısız olabilir. Bu nedenle Double (String) Double türünde bir sonuç üretemez ve üretemez, ancak Double türünden bir sonuç üretebilir mi? , bu isteğe bağlı bir Double'dir. Ve isteğe bağlı bir Double, bir Int ile karşılaştırılamaz.
Okulda zorbalığa uğradın mı? Bana saldırmadan cevap veremediğin için özgüvenin oldukça düşük görünüyor.
Bu sizinle ilk ve son görüşmem olacak. Size öneri - daha medeni bir şekilde iletişim kurmayı deneyin, hayat harika olacak. Dikkatli ol.
yeşil
- 15 Tem 2015
- Fort Worth
- 25 Ekim 2017
gnasher729 dedi ki: Doğru yol, hatayı kontrol etmektir. Örneğin
d = Double (MyValue), d > 10 {
// MyValue bir sayı içeriyordu ve sayı > 10'dur.
} Başka {
// MyValue bir sayı içermiyordu veya sayı<= 10.
}
Bu belirsizdir - ya değer<= 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.
Çok daha temiz bir yol olacaktır:
Kod: |_+_|
Bununla birlikte, MyValue'nin başlangıçtan itibaren Double olarak saklanması gerektiğini ve daha sonra gerekli olan biçimlendirmeyi işlemek için bir NumberFormatter'ın uygulanması gerektiğini düşünüyorum. Bu, kodu okuyan kişi için çok daha düşük bir bilişsel yüke sahiptir.
gnasher729
Askıya alındı
- 25 Kasım 2005
- 26 Ekim 2017
maculateConception dedi ki: Okulda zorbalığa uğradınız mı? Bana saldırmadan cevap veremediğin için özgüvenin oldukça düşük görünüyor.
Bu sizinle ilk ve son görüşmem olacak. Size öneri - daha medeni bir şekilde iletişim kurmayı deneyin, hayat harika olacak. Dikkatli ol.
Ben sana saldırmadım. Swift hakkında çok az şey bildiğinizi gösteren yazınıza saldırdım ve çok tehlikeli bir tavsiye ekledim. S
SAIRUS
ile
- 21 Ağu 2008
- 26 Ekim 2017
sokmak
- 14 Nis 2018
- 14 Nis 2018
1) '!' işareti ekleyerek bu değerin tam int olacağını belirtebilirsiniz.
Kod: |_+_| 2) Değeri tanımlarken tipi belirtebilirsiniz.
Kod: |_+_| İLE
şirket şirketleri
- 28 Ocak 2006
- 27 Nis 2018
ynstek dedi ki: Swift, değerinizin tam olarak int olduğundan emin değil. Emin olmak için iki seçenek var.
1) '!' işareti ekleyerek bu değerin tam int olacağını belirtebilirsiniz.
Kod: |_+_| 2) Değeri tanımlarken tipi belirtebilirsiniz.
Kod: |_+_|
2 numaralı örneğinin başarısız olacağını düşünüyorum çünkü bir çifte bir Int değişkenine bir dize dökümü atamaya çalışıyorsunuz. Ayrıca, MyValue öğesinin sıfır olmadığını varsayıyorsunuz, bu da sıfır veya sayısal olmaması durumunda çalışma zamanı hatasına neden olabilir.
1 numaralı örnek açıklamanız da doğru değil. Ünlem işareti, bir değeri Int'ye dönüştürmez. İsteğe bağlı bir değişkenin değerini açar. Örneğinizde, bir Int değil, bir Double değeri elde edersiniz ve yalnızca MyValue sıfır veya sayısal olmayan bir değer değilse.
Popüler Mesajlar