Kotlin ma doskonałą funkcję zwaną szablonami ciągów. Naprawdę to kocham.
val i = 10
val s = "i = $i" // evaluates to "i = 10"
Ale czy możliwe jest jakiekolwiek formatowanie w szablonach? Na przykład chciałbym sformatować szablony Double in string w kotlin, przynajmniej ustawić liczbę cyfr po separatorze dziesiętnym:
val pi = 3.14159265358979323
val s = "pi = $pi??" // How to make it "pi = 3.14"?
string-formatting
kotlin
MajesticRa
źródło
źródło
Odpowiedzi:
Niestety, nie ma jeszcze wbudowanej obsługi formatowania w szablonach ciągów. Aby obejść ten problem, możesz użyć czegoś takiego:
.format(n)
funkcja trzeba by określić siebie jakoW tej chwili Kotlina wyraźnie brakuje funkcjonalności, naprawimy to.
źródło
Aby obejść ten problem, istnieje funkcja stdlib Kotlina, której można używać w przyjemny sposób iw pełni kompatybilny z formatem String w Javie (jest to tylko opakowanie wokół Java
String.format()
)Zobacz dokumentację Kotlina
Twój kod to:
źródło
Klasa String Kotlina ma teraz funkcję formatu , która wewnętrznie korzysta z
String.format
metody Java :Stosowanie
źródło
To proste, użyj:
źródło
Ponieważ
String.format
jest to tylko funkcja rozszerzenia (patrz tutaj ), która wywołuje wewnętrznie,java.lang.String.format
możesz napisać własną funkcję rozszerzenia przy użyciu DecimalFormat Java, jeśli potrzebujesz większej elastyczności:źródło
Kilka przykładów:
źródło