Как использовать BigDecimal в мультиплатформе Kotlin?

Я следовал руководству https://kotlinlang.org/docs/tutorials/native/mpp-ios-android.html, затем я успешно создаю папки androidmain, iosmain и commonmain.
Однако, когда я хочу реализовать тип данных BigDecimal в файле commonmain. Это не сработает. Мне нужен десятичный тип данных для валюты.


person Cheeseburger    schedule 22.03.2019    source источник


Ответы (1)


В общем коде Kotlin нет поддержки BigDecimal (пока). Вы можете просмотреть соответствующую ветку
https://discuss.kotlinlang.org/t/multiplatform-bigdecimal-implementation/5631

Вы можете создать собственную реализацию такого класса с ключевыми словами expect и actual.
https://kotlinlang.org/docs/reference/platform-specific-declarations.html

Идея заключается в следующем: * вы объявляете объявления expect для типа BigDecimal в общем коде * вы используете аннотации actual на каждой платформе, чтобы предоставить специфичную для платформы реализацию (например, класс JVM BigDecimal)

person Eugene Petrenko    schedule 22.03.2019