Uygulamanın sıfırdan sağlanması gerekli mi? Son çare Implicits özelliğinde bile eşleşmeyen bir eşleşme bulamadım. seqDerivedOrdering
açıkça çalışmıyor, Array
bir Seq
değil.Sipariş nasıl tanımlanır [Array [Byte]]?
cevap
Eşzamanlı dizi üzerinde toSeq
çağrılarını yapan ve seqDerivedOrdering
çağrıları yapan çok basit bir Ordering
uygulayabilirsiniz. Bir Sıraya dönüştürme, performans açısından neredeyse ücretsiz olmalıdır. Eğer verimli olmasını istiyorsanız
, siz (bu bir boş değerlere kolları; hiçbir boş değerlere varsayabiliriz eğer, sadece uzun başka blok kullanın) kendi yazmak gerekecek: Aksi
val o = new math.Ordering[Array[Byte]] {
def compare(a: Array[Byte], b: Array[Byte]): Int = {
if (a eq null) {
if (b eq null) 0
else -1
}
else if (b eq null) 1
else {
val L = math.min(a.length, b.length)
var i = 0
while (i < L) {
if (a(i) < b(i)) return -1
else if (b(i) < a(i)) return 1
i += 1
}
if (L < b.length) -1
else if (L < a.length) 1
else 0
}
}
}
, Bir WrappedArray
'a paketlemek için .toSeq
'u kullanabilir ve kendi taramanızı yapmak yerine Sıralı bir karşılaştırmayı erteleyebilirsiniz. (Bu sonuçta, boksu ve kutucuklarınızı açacaksınız, bu yüzden verimli değil. Baytlık boks, genellikle tüm baytların bir tablosunda arama yapılarak yapıldığı için, korkunç etkisizdir, bu yüzden bundan kurtulabilirsiniz. Eğer örneğin ağır ikili dosya işleme yapıyoruz sürece)
ham performanstan ziyade kısalık içine iseniz.
scala> Ordering.by((_: Array[Byte]).toIterable)
res0: scala.math.Ordering[Array[Byte]] = [email protected]
- 1. Python'da Byte Array
- 2. SQLite, Byte Array olarak nasıl bildirilir?
- 3. Yodlee getMFAResponse Captcha için Byte Array
- 4. Bir Enumerator'dan bir Java InputStream oluşturma [Array [Byte]
- 5. pdf Byte [] Array, iTextSharp kullanarak indirilebilir dosyaya dönüştürülür.
- 6. Sipariş verilen bir Ruby Array uygulamasını hızlı bir şekilde nasıl yeniden sipariş edebilirim?
- 7. Swagger'da harita nasıl tanımlanır?
- 8. Desteklenen byte [] ile Float []
- 9. Array,
- 10. Avro şemasında bayt [] ve LocalDateTime nasıl tanımlanır?
- 11. byte [], başka bir byte [] özel konumundan kopyalamaksızın nasıl alınır?
- 12. artifact groupId nasıl tanımlanır?
- 13. ESC karakterleri nasıl tanımlanır?
- 14. FrontEndEventActions nasıl yeniden tanımlanır?
- 15. Kodda DataTemplate nasıl tanımlanır?
- 16. Scipy.optimize.curve_fit işlevi nasıl tanımlanır?
- 17. Array
- 18. Byte Buddy
- 19. JSON Array nasıl oluşturulur?
- 20. Array C# nasıl?
- 21. Nasıl yapılır: 'byte []' için 'System.Data.Linq.Binary'
- 22. Byte [] ASCII
- 23. Golang byte
- 24. Sipariş
- 25. sipariş alanları İşte
- 26. Sipariş üzerine COUNT değer Sipariş
- 27. Maven'de koşullu özellikler nasıl tanımlanır?
- 28. Enum en3'te nasıl tanımlanır?
- 29. Bir cevap adresi nasıl tanımlanır?
- 30. WiX'te genel değişken nasıl tanımlanır
Evet, böyle bir şey eklemek istedim, ama önce sormak istedim. Belki daha açık hale getirmek için stdlib'e bir şey eklemek mantıklı olabilir mi? – venechka
@venechka - Array nesnesi bunları her tür için uygularsa iyi olur. Belki bir kişi bir geliştirme talebi sunmalıdır? Bu arada, standart kütüphanenin sahip olmadığı kullanışlı şeyler var. İhtiyacınız olan parçaları doldurmak için kendi kişisel kütüphanenize sahip olmalısınız! –
bence tek bir özel versiyona sahip olmak yeterlidir. – venechka