2017-05-29 9 views
36

मुझे लगता है कि कोटलिन में ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray है, जो कि जावा में byte[], short[], int[],char[], double[], float[] के बराबर है।जावा की स्ट्रिंग [] के कोटलिन समतुल्य क्या है?

अब मुझे आश्चर्य है, क्या कोई StringArray जावा के String[] के बराबर है?

+3

'typealias StringArray = सरणी ';) – marstran

उत्तर

49

, String के लिए कोई विशेष मामला नहीं है क्योंकि StringJava primitives (int, double, ...) साथ, JVM पर एक साधारण निर्देशात्मक प्रकार है इसके विपरीत में - उन्हें एक संदर्भ Array<T>boxing them into objects like Integer and Double की आवश्यकता है में संग्रहीत। कोटलिन में IntArray जैसे विशेष सरणी का उद्देश्य गैर-बॉक्स वाले प्राइमेटिव्स को स्टोर करना, मुक्केबाजी और अनबॉक्सिंग ओवरहेड से छुटकारा पाने के लिए है (Integer[] के बजाय जावा int[] के समान)।

आप Array<String> (और Array<String?> nullables के लिए) का उपयोग कर सकते है, जो जावा में String[] के बराबर है:

val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?> 
val someStrings = Array<String>(5) { "it = $it" } 
val otherStrings = arrayOf("a", "b", "c") 

यह भी देखें: Arrays in the language reference

1

आप arrayOf() फ़ंक्शन का उपयोग कर सकते हैं:

val literals = arrayOf("str1", "str2", "str3") 
+0

'arrayof' 'ऐरे ' लौटा, 'ऐरे ' जावा में 'स्ट्रिंग [] 'के बराबर है? – chancyWu

+0

नहीं, कोटलिन स्ट्रिंग में आदिम प्रकार नहीं है। जावा – chandil03

+0

@chancyWu हाँ में स्ट्रिंग [] के रूप में कोटलिन में इसके ऐरे । कोटलिन में 'ऐरे ' जावा में जो कुछ भी [] 'के बराबर है, और 'इंट्रायरे', 'लॉन्गअरे' और इसी तरह 'int []', 'long []', के समकक्ष हैं ... –

6

उन प्रकार के होते हैं, ताकि आप पुरातन के एरे बॉक्स्ड प्रकार बना सकते हैं, और नहीं। चूंकि स्ट्रिंग जावा में एक आदिम नहीं है, इसलिए आप केवल Array<String> को कोटलिन में जावा String[] के समतुल्य के रूप में उपयोग कर सकते हैं।

3

Strings और अन्य प्रकार के लिए, आप बस Array<*> का उपयोग करें। कारण IntArray और अन्य मौजूद हैं ऑटोबॉक्सिंग को रोकने के लिए।

तो int[]IntArray से संबंधित है जहां Integer[]Array<Int> से संबंधित है।

संबंधित मुद्दे