2017-05-31 17 views
6

Tôi cần sử dụng BigInteger nhưng không thể tìm thấy bất kỳ thứ gì tương tự trong kotlin.BigInteger in Kotlin

Có bất kỳ lớp học thay thế nào trong kotlin đối với BigInteger của java không?

hoặc

tôi có nên nhập lớp java vào kotlin không?

+0

http://docs.w3cub.com/kotlin/api/latest/jvm/stdlib/kotlin/java.math.-big-integer/ –

+0

tại sao bạn không sử dụng loại Dài? – vuhung3990

+1

@ vuhung3990 https://stackoverflow.com/a/31748073/6156989 –

Trả lời

9

java.math.BigInteger có thể được sử dụng trong Kotlin như bất kỳ Java khác lớp học. Thậm chí còn có helpers in stdlib giúp các hoạt động phổ biến dễ đọc và dễ đọc hơn. Bạn thậm chí có thể kéo dài tuổi những người giúp đỡ mình để đạt được khả năng đọc hơn:

import java.math.BigInteger 

fun Long.toBigInteger() = BigInteger.valueOf(this) 
fun Int.toBigInteger() = BigInteger.valueOf(toLong()) 

val a = BigInteger("1") 
val b = 12.toBigInteger() 
val c = 2L.toBigInteger() 

fun main(argv:Array<String>){ 
    println((a + b)/c) // prints out 6 
} 
3

Bạn có thể sử dụng bất kỳ lớp Java tích hợp nào từ Kotlin và bạn nên làm như vậy. Tất cả chúng sẽ hoạt động giống như cách thức thực hiện trong Java. Kotlin làm cho một điểm của việc sử dụng những gì nền tảng Java đã cung cấp thay vì tái thực hiện chúng; ví dụ, không có bộ sưu tập đặc biệt nào của Kotlin, chỉ một số giao diện trên đầu các bộ sưu tập Java và thư viện chuẩn cũng sử dụng các bộ sưu tập đó.

Vì vậy, có, bạn chỉ nên sử dụng java.math.BigInteger. Như một phần thưởng, bạn sẽ thực sự có thể sử dụng các toán thay vì gọi hàm khi bạn sử dụng BigInteger từ Kotlin: + thay vì add, - thay vì subtract vv