स्काला में आरंभिक अंकन


115

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

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

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

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

जवाबों:


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

6
यह उत्तर अभी तक यह स्पष्ट नहीं करता है कि स्काला में बहुआयामी सरणियों को कैसे आरंभ किया जाए (जो यहां पर संबोधित किया गया है: stackoverflow.com/questions/13862568/… )
एंडरसन ग्रीन

108

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

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

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


3
बस FYI करें, एक समान इनिशियलाइज़र के रूप में सूची List.fill(5)(0), यहां तक ​​कि कार्यों को भी स्वीकार करता है। List.fill(5)(myFunc())
केवरिस

39

भरण के साथ अधिक गतिशील inits भी कर सकते हैं, जैसे

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

==>

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

17

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

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)

15

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

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

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

val row = 5
val column = 3
val temp = Array.ofDim[String](row, column)

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

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

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

10

बहु-विवादास्पद सरणियों को घोषित करने का दूसरा तरीका:

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

res3: Array[Array[String]] = Array(Array("", "", ""), Array("", "", ""),Array("", "", ""), Array("", "", ""))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.