Bu nasıl olabilir? Ben yeni bir dizi ... Henüz m (0) 10. bir değere sahiptir VE m (1) bir ArrayIndexOutOfBounds istisna ...Scala Dizi bildirimi - uygulamak için beklenmedik sonuç (0)
cevap
Array[Int](10)
oluşturulan biriyle bir dizi oluşturur değil eleman, 10
. Bunu kontrol edin Scala'da istisnai durumlardan haberdar olmadan dizi elemanlarına doğrudan erişmemelisiniz.
scala> val array = Array(10)
array: Array[Int] = Array(10)
scala> array.drop(5).headOption
res0: Option[Int] = None
* Scala'da (ve diğer herhangi bir FP dilinde), dizi elemanlarına doğrudan erişmemelisiniz. * Neden doğrudan dizi elemanlarına erişemezsiniz? –
Ayrıca, güvende olmak için 5. elemente erişmek için sadece array.lift (4) 'ü kullanabilirsiniz. Kodunuz ilk 5 olarak 6'ya erişir. –
evet, yazım 6'ya erişiyor. ama ben farkında değildim “.lift”, teşekkürler :) – pedrorijo91
val m = Array[Int](10)
10
değişken m
bağlı bir eleman ile tip Int
bir dizi anlamına gelir, örneğin 5 eleman erişmek için bir şey gibi tercih ediyorum. m(n)
, m
'un n-th elemanı anlamına gelir.
Bu nedenle m(1)
size bir ArrayIndexOutOfBounds verir, m sadece bir öğeye sahiptir.
Diziler için tek Java sözdizimi ile karıştırıyor musunuz? int[] m = new int[10];
10, başlatılmamış bir öğe dizisidir.
Hayır Sadece bir kursa devam ediyordum ... bu yüzden karıştırmadım. Şimdi, rub, eğer Yeni sözcük Array'dan önce eklendiyse, THEN, derslerin amaçladığı istenen etkiyi elde ettim, ki bu sıfıra sıfırlanan 10 elemanlı bir Array bildirmektir. Scala tuhaftır. – Beezer
Çünkü Array (10) tek başına Array nesnesinde Array.apply işlevini çağırır: http://www.scala-lang.org/api/current/#scala.Array$ ve 'new Array kullanarak (10) 'sınıftaki kurucuyu çağırır: http://www.scala-lang.org/api/current/#scala.Array – pedrofurla
Ama dürüst olmak gerekirse, 'Yeni Array'ın birçok kullanım alanı göremiyorum. . Aslında var olduğunu bile unutmuştu. – pedrofurla
- 1. Sonuç Bildirimi (JAVA)
- 2. Scala beklenmedik genişletilmiş fonksiyonu
- 3. mysql from_days beklenmedik bir sonuç üretiyor
- 4. Bir dizi tamsayı için WSDL bildirimi nedir?
- 5. Scala - Beklenmedik tipte bir harita, kavramak için yinelenebilir mi?
- 6. Hazırda Bekletme ile Projections.countDistinct beklenmedik sonuç üretir
- 7. Phpstorm'da dizi bildirimi için uzun sözdizimi nasıl uygulanır?
- 8. Scala dizi başlatma
- 9. SözdizimiOnum beklenmedik jetonu JSON konumunda 0 Angular2
- 10. Boş dizi bildirimi - garip derleyici davranışı
- 11. TSP matrisi neden sonuç her zaman 0?
- 12. php hata bildirimi Başlatılmamış dize ofseti: 0
- 13. SQL sorgusundan döndürülen sonuç her zaman 0
- 14. PHP XPath arama dönen 0 sonuç
- 15. Şablon sınıfı 0'daki koşullu başvuru bildirimi
- 16. Scala: Bir koleksiyonu fonksiyonunu uygulamak ve sonuçların bazıları
- 17. Scala, RDD Dizi [dize] birleştirme
- 18. Scala Dizi haritası döndürür ArraySeq
- 19. Google Geocoding API Belirsiz arama sorgusunda beklenmedik sonuç
- 20. Scala Sabit 0 ile sayısal başlat
- 21. Seçenek [ile] Scala kalıbı eşleşmesi Seçenek [0]
- 22. Bir dizi java tabanlı hizmetleri kapsayan bir etki alanı katmanı uygulamak için Scala'yı kullanma
- 23. hata: RPC başarısız oldu; Sonuç = 52, HTTP kodu = 0 ölümcül: İtiyorum veya projemi klonlama ettiğimde uzaktan sonunda beklenmedik
- 24. Java dizi uzunluğu 0'dan az mı?
- 25. Dizi performansı ile scala işlemleri (scalacl eklentisi)
- 26. Array.prototype.find() beklenmedik davranış
- 27. Birden görünümü ile rehabilitasyon makinesi görünümü uygulamak için çalışır ama istenen bir sonuç alamıyorum
- 28. Javascript beklenmeyen sonuç
- 29. Scala bana ne anlatmaya çalışıyor ve bunu nasıl düzeltirim? [required: java.util.List [? 0] nerede? 0]
- 30. Android Uygulama İçi Faturalandırma - queryInventoryAsync 0 sonuç döndürüyor
Varsayılan değer olarak başlatılan bir boyut 10 dizisi oluşturmak için ('ilkeler için' '' '' '' '' '' '' '' '' '' 'Array.ofDim [Int] (10) istediğiniz '. –