2010-10-07 14 views
93

में शुरू होने वाली ऐरे मैं स्कैला के लिए नया हूं, अभी इसे सीखना शुरू कर दिया। मैं जानना चाहता हूं कि स्कैला में एक सरणी कैसे शुरू करें।स्केल

उदाहरण जावा कोड

String[] arr = { "Hello", "World" }; 

स्काला में उपरोक्त कोड के बराबर क्या है?

उत्तर

116
scala> val arr = Array("Hello","World") 
arr: Array[java.lang.String] = Array(Hello, World) 
+5

इस उत्तर अभी तक स्पष्ट नहीं होता स्काला में बहुआयामी सरणियों को प्रारंभ करने के लिए कैसे (जिसे यहां संबोधित किया गया है: http://stackoverflow.com/questions/13862568/initializing-a-2d-multi-dimensional-array-in-scala) –

14

वसिल के जवाब देने के लिए अतिरिक्त: यदि आप एक स्काला संग्रह के रूप में दिए गए मान है, तो आप

val list = List(1,2,3,4,5) 
val arr = Array[Int](list:_*) 
println(arr.mkString) 

लिख सकते हैं लेकिन आम तौर पर toArray विधि अधिक उपयोगी है:

val list = List(1,2,3,4,5) 
val arr = list.toArray 
println(arr.mkString) 
85

करने के लिए शून्य से भरे एक सरणी को प्रारंभ करें, आप इसका उपयोग कर सकते हैं:

> Array.fill[Byte](5)(0) 
Array(0, 0, 0, 0, 0) 

यह जावा के new byte[5] के बराबर है।

+1

बस एफवाईआई, समकक्ष प्रारंभकर्ता के रूप में सूचीबद्ध करें 'List.fill (5) (0) ', कार्यों को भी स्वीकार करता है। 'List.fill (5) (myFunc())' – cevaris

36

भरने के साथ और अधिक गतिशील inits भी कर सकते हैं, उदा।

Array.fill(10){scala.util.Random.nextInt(5)} 

==>

Array[Int] = Array(0, 1, 0, 0, 3, 2, 4, 1, 4, 3) 
10

आप सरणी की दूरी जानते हैं, लेकिन आप अपनी सामग्री नहीं जानते हैं, तो आप उपयोग कर सकते हैं

val length = 5 
val temp = Array.ofDim[String](length) 

आप दो आयामों सरणी करना चाहते हैं, लेकिन आप इसकी सामग्री नहीं जानते हैं, आप

val row = 5 
val column = 3 
val temp = Array.ofDim[String](row, column) 
का उपयोग कर सकते हैं 10

बेशक, आप स्ट्रिंग को दूसरे प्रकार में बदल सकते हैं।

आप पहले से ही अपनी सामग्री जानते हैं, तो आप उपयोग कर सकते हैं

val temp = Array("a", "b") 
8

घोषित बहु आयामी सरणी का एक अन्य तरीका:

Array.fill(4,3)("") 

res3: Array[Array[String]] = Array(Array("", "", ""), Array("", "", ""),Array("", "", ""), Array("", "", ""))