Bir süreliğine aradım ama bu sorunun cevabı boş çıktı. Tamsayı olan değişken X değişkeninin bir String'e basit komutu nedir?Scala'da Integer'i String'e nasıl atabilirim?
cevap
, onun dize temsilini almak için onun toString
çağırabilir.
val x = 42
x.toString // gives "42"
Bu, dizeyi verir. Tabii ki, herhangi bir Scala "şey" üzerinde toString
kullanabilirsiniz - Ben yüklü object
kelime kaçınıyorum.
Yeterince basit mi? Eğer tip Int
değişken x
varsa
scala> val foo = 1
foo: Int = 1
scala> foo.toString
res0: String = 1
scala> val bar: java.lang.Integer = 2
bar: Integer = 2
scala> bar.toString
res1: String = 2
Bu basit durum için bir Int üzerinde toString yöntemini çağırmanın en iyi çözüm olduğunu düşünüyorum, ancak Scala'nın bu tür sorunlar için daha genel ve çok güçlü bir mekanizma sağladığını bilmek güzel.
implicit def intToString(i: Int) = i.toString
def foo(s: String) = println(s)
foo(3)
Şimdi bunu dize olduğu gibi Int tedavi (ve Dize gerektirir yöntemlerde bir argüman olarak kullanarak), yapmanız gereken her şeyi Int String dönüştürmek yolu tanımlamaktır.
Bu, tür güvenliğinden kaynaklanan erozyona uğradığından gizli dönüşümlerin kötüye kullanılması olur –
- 1. Orijinal dosyayı kaydetmemeye nasıl atabilirim?
- 2. Eğer varsa bunları nasıl atabilirim?
- 3. Scalada eşleşen desen
- 4. Asansörde/Scalada MVC
- 5. Scalada örtülü kaldırma
- 6. Scalada spark.implicits._ içe aktarılıyor
- 7. Scalada Haskell FixF tanımlanması
- 8. Bir System.Timers.Timer ürününü nasıl güvenle atabilirim?
- 9. Ekranın iki tarafındaki sprite'ı Swift'de nasıl atabilirim?
- 10. Dolar işareti, scalada ne yapar
- 11. Git rebase sırasında, orijinali nasıl saklayabilirim ve değişiklikleri nasıl atabilirim?
- 12. Scalada dize adına göre nesne örneği alma
- 13. Üçlü soru işareti scalada ne anlama geliyor?
- 14. Java swing kütüphanesinde bir dosyaya nasıl göz atabilirim?
- 15. Microsoft'un .NET framework kaynak koduna nasıl adım atabilirim?
- 16. C# içindeki yerel bir sanal klasöre nasıl göz atabilirim?
- 17. Git'deki bir dosyanın belirli bir sürümüne nasıl göz atabilirim?
- 18. iPhone fotoğraf kitaplığındaki bir resme nasıl göz atabilirim?
- 19. Bir scalada oturum açma için tasarım deseni SBT Autoplugin
- 20. Etki alanından maskelenen sitemden bir bağlantıyı nasıl harici bir siteye mi atabilirim?
- 21. Mockito'yu kullanarak, bir örnek yönteminin bir döndürme değerini o sınıfın bir örneğini almadan nasıl atabilirim?
- 22. Örnek bir örnek olmadan genel bir örnek üretmek için scalada bir yol var mı?
- 23. Java sunucusundan 404 hatası nasıl atılır?
- 24. yaml - yaml dosyasında uzun süre nasıl değer basılır
- 25. Kullanıcı yalnızca bir tamsayı numarası girer
- 26. Scala'da bir numaralandırmadan rasgele bir öğe nasıl seçilir?
- 27. Jupyter'de Scrapy projesi nasıl çalıştırılır?
- 28. Akış sonu nasıl belirlenir?
- 29. Python CGI kullanarak "istek gövdesi" nasıl ayrıştırılır?
- 30. C uzantısında özel bir Python özel durum türü nasıl oluşturulur?
Teknik olarak yapamazsınız. Döküm, yalnızca bir değerin farklı ancak uyumlu bir türe yeniden yorumlanmasıdır. Statik olarak bilinen değerin türünden daha genel bir türe dökülüyorsa her zaman başarılı olur. Değerin dönüştürüldüğü türün, statik olarak bilinen türden bir alt tür veya alt tür olmaması durumunda, * öğesinin * sahip olabileceği, ancak vermediği ve derleyici tarafından reddedildiği bir türe dönüştürülmesi dinamik olarak başarısız olabilir. 'Int' vs.' String' ikinci kategoriye girer. –
Soruyu ifade etmenin doğru yolu, "Scala'daki bir Int'e nasıl bir * dönüştürebilirim?" Olacaktır. Sorunun nereden geldiğini hayal edebiliyorum: Java'da, ints nesneler değil, bu yüzden dönüştürme işlemini gerçekleştirmek için başka bir mekanizmaya ihtiyacınız var. Scala'da, * her şey bir nesnedir (yay!), Bu nedenle böyle özel durum mekanizmalarına ihtiyacınız yoktur; toString, * bir şeyi bir String'e dönüştürmenin yoludur. – AmigoNico