2017-05-31 8 views
6

मुझे BigInteger का उपयोग करने की आवश्यकता है लेकिन कोटलिन में कुछ भी नहीं मिल सकता है।कोटलिन में BigInteger

क्या जावा के बिगइन्टर को कोटलिन में कोई वैकल्पिक वर्ग है?

या

मैं kotlin में जावा वर्ग आयात करना चाहिए?

+0

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

+0

आप लंबे प्रकार का उपयोग क्यों नहीं करते? – vuhung3990

+1

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

उत्तर

9

java.math.BigInteger किसी अन्य जावा के रूप में Kotlin में इस्तेमाल किया जा सकता कक्षा। यहां तक ​​कि helpers in stdlib भी हैं जो आम परिचालन को पढ़ने और लिखने में आसान बनाते हैं। तुम भी सहायकों अधिक से अधिक पठनीयता विस्तार कर सकते हैं अपने आप को प्राप्त करने के लिए:

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

आप कोटलिन से निर्मित किसी भी अंतर्निहित जावा कक्षाओं का उपयोग कर सकते हैं, और आपको चाहिए। वे सभी जावा में किए गए वैसे ही काम करेंगे। कोटलिन जावा प्लेटफ़ॉर्म को फिर से कार्यान्वित करने के बजाय ऑफ़र करने का एक बिंदु बनाता है; उदाहरण के लिए, कोई कोटलिन विशिष्ट संग्रह नहीं हैं, केवल जावा संग्रह के शीर्ष पर कुछ इंटरफेस हैं, और मानक लाइब्रेरी उन संग्रहों का भी उपयोग करती है।

तो हाँ, आपको केवल java.math.BigInteger का उपयोग करना चाहिए। एक बोनस के रूप में, आप वास्तव में फ़ंक्शन कॉल के बजाय ऑपरेटरों का उपयोग करने के लिए जब आप Kotlin से BigInteger का उपयोग कर पाएंगे: + बजाय add, subtract के बजाय -, आदि