本篇內(nèi)容主要講解“scala元組怎么創(chuàng)建”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“scala元組怎么創(chuàng)建”吧!
創(chuàng)新互聯(lián)建站是一家企業(yè)級(jí)云計(jì)算解決方案提供商,超15年IDC數(shù)據(jù)中心運(yùn)營(yíng)經(jīng)驗(yàn)。主營(yíng)GPU顯卡服務(wù)器,站群服務(wù)器,樂(lè)山服務(wù)器托管,海外高防服務(wù)器,大帶寬服務(wù)器,動(dòng)態(tài)撥號(hào)VPS,海外云手機(jī),海外云服務(wù)器,海外服務(wù)器租用托管等。
在 Scala 中,元組是一個(gè)可以容納不同類(lèi)型元素的類(lèi)。元組是不可變的。
當(dāng)我們需要從函數(shù)返回多個(gè)值時(shí),元組會(huì)派上用場(chǎng)。
元組可以創(chuàng)建如下:
val ingredient = ("Sugar" , 25):Tuple2[String, Int]
這將創(chuàng)建一個(gè)包含一個(gè) String 元素和一個(gè) Int 元素的元組。
Scala 中的元組包含一系列類(lèi):Tuple2,Tuple3等,直到 Tuple22。因此,當(dāng)我們創(chuàng)建一個(gè)包含 n 個(gè)元素(n 位于 2 和 22 之間)的元組時(shí),Scala 基本上就是從上述的一組類(lèi)中實(shí)例化 一個(gè)相對(duì)應(yīng)的類(lèi),使用組成元素的類(lèi)型進(jìn)行參數(shù)化。上例中,ingredient
的類(lèi)型為 Tuple2[String, Int]
。
使用下劃線語(yǔ)法來(lái)訪問(wèn)元組中的元素?!畉uple._n’ 取出了第 n 個(gè)元素(假設(shè)有足夠多元素)。
println(ingredient._1)
println(ingredient._2)
Scala 元組也支持解構(gòu)。
val (name, quantity) = ingredient
println(name)
println(quantity)
元組解構(gòu)也可用于模式匹配。
val planetDistanceFromSun = List(("Mercury", 57.9), ("Venus", 108.2), ("Earth", 149.6 ), ("Mars", 227.9), ("Jupiter", 778.3))
planetDistanceFromSun.foreach{ tuple => {
tuple match {
case ("Mercury", distance) => println(s"Mercury is $distance millions km far from Sun")
case p if(p._1 == "Venus") => println(s"Venus is ${p._2} millions km far from Sun")
case p if(p._1 == "Earth") => println(s"Blue planet is ${p._2} millions km far from Sun")
case _ => println("Too far....")
}
}
}
或者,在 ‘for’ 表達(dá)式中。
val numPairs = List((2, 5), (3, -7), (20, 56))
for ((a, b) <- numPairs) {
println(a * b)
}
類(lèi)型 Unit
的值 ()
在概念上與類(lèi)型 Tuple0
的值 ()
相同。Tuple0
只能有一個(gè)值,因?yàn)樗鼪](méi)有元素。
用戶(hù)有時(shí)可能在元組和 case 類(lèi)之間難以選擇。通常,如果元素具有更多含義,則首選 case 類(lèi)。
到此,相信大家對(duì)“scala元組怎么創(chuàng)建”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!