中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Scala for循環怎么使用

發布時間:2021-12-08 14:50:36 來源:億速云 閱讀:298 作者:iii 欄目:開發技術

本篇內容介紹了“Scala for循環怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

基本語法:變量變量的定義:不可變:val a = 2 或者 val a : Int = 2 (指定了數據類型) lazy val a : Int =2

可變:var a = 2 或者 var a : Int = 2(指定了數據類型)

def a = 2

定義變量不能1.以數字以及特殊符號(_除外)開頭 2.以關鍵字(var、val、class等)開頭

def定義的是??

var 編譯后有set 與 get 方?法 所以可以重新賦值

val 編譯后只有get方法 所以不能再賦值了

lazy 惰性變量,只在該變量被調用的時候才實例化,而且后面只能跟val

def 與val 差不多 不能重新賦值 更多修飾方法

Scala變量的類型:Any是scala的頂級類型,Any下有AnyVal(值類型)和AnyRef(引用類型)兩個子類

AnyVal : 它有9個類型,其中7個是指類型:Double Float Byte Int Short Long Char 和兩個非值類型:Unit Boolean

AnyRef : 是引用類型,它的子類有:List Option 或者自定義的并繼承它的class

所有的類型都需要首字母大寫

Scala會自動推斷類型

Scala數據類型可以從低到高轉換 Byte-Short-Int-Long-Float-Double

Char-Int-Long-Float-Double

注意:scala內沒有強轉

操作符

Scala里沒有操作符的概念,所謂的操作符其實都是方法

數學運算:+ - * / : % .+ ( ) 注:x+y 與 x.+(y)等價

關系:< <= > >= ! != ==

位運算: | & ^

如果兩個不一樣類型的變量進行運算,最終結果的類型是大的那個類型

如果想要格式化輸出:var x =5 var y = 5

var n =x + y

print(s”x+y=$n”) 輸出結果 x+y=10

當然也可以在結果前面加字符串”x+y”

條件表達式

這種打出來是空,因為else里不是一個值,而是一個賦值語句

正常應該是 var res = if(sex == 1){“男”}else{“女”}

因為大括號里只有一個‘表達式’,大括號可以省略

var res = if(sex == 1)“男”else“女”

for循環

for(i<- 1 to 10){println (i)} //打印1-10

for(i <- 1 until 10){println (i)} //打印1-9

val arr = Array(“java”,”scala”,”python”) //定義一個數組

for(i<- arr){println (i)} //打印數組內容

for(i <- 1 to 3 ;j <- 1 to 3 if(i != j)){println(i*10+j)} //相當于雙層for循環

val arr =for(i <- 1 until 10) yield (i) //把0-9循環出來后封裝進arr集合

val arr =for(i <- 1 until 10) yield (i*10)

val res2 = for(i <- arr if i%2 == 0) yield i*100 //過濾

val arrf = bf.filter(_ %2==0).map(_ *100) //過濾 _ 是全部數據的意思

在scala中不支持break語句,但在scala 2.8之后 可以利用Breaks方式來實現

方法

def m1(x : Int , y : Int ) : Int = {x + y} //三種聲明方式

def m2(x:Int , y:Int) {print(x+y)}

def m3(x:Int , y:Int){x+y}

解釋:m1是方法名 xy是int型的參數 括號外的int是返回值類型 x+y是方法

調用:m1 (3,4)

函數

val f1 = (x:Int , y:Int) => x+y //聲明

val f1 = (x:Int , y:Int) =>{

val sum = x+y

sum*100} //最后一句作為函數的返回值 函數沒有返回值類型

回車之后會看到

f1: (Int, Int) => Int = <function2>

這里的function2中的2指的是參數的個數

調用:f1 (3,4) //與方法的調用一致

函數與方法的關系???

我們通過一個案例來探討:

首先創建一個方法:def func (yAge:Int,mAge:Int):String={

val a : Boolean = yAge >= mAge

val str : String = if(a) "哥哥" else "弟弟"

str

}

我們發現這個條件可以做成一個函數:val m = ( yAge:Int , mAge:Int ) = >{yAge >= mAge}

我們可以調用函數:def func1 (yAge:Int,mAge:Int):String={

val a : Boolean = m(yAge,mAge)

val str : String = if(a) "哥哥" else "弟弟"

}

我們也可以把函數當做一個參數傳入到方法中:

def func1(yAge:Int,mAge:Int,f:(Int,Int) =>Boolean):String={

var a= f(yAge,mAge) 或者var a :Boolean = f(yAge,mAge)

val res : String=if(a)"哥哥" else "弟弟"

res

}

調用: println(func1(18,20,m))

“Scala for循環怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

礼泉县| 西贡区| 汤原县| 东城区| 江山市| 乌鲁木齐市| 平舆县| 东光县| 原阳县| 井陉县| 桃江县| 丽江市| 盘山县| 高密市| 仙居县| 肥城市| 连州市| 绵阳市| 阿克| 灵石县| 辽阳县| 郧西县| 西峡县| 广州市| 沅江市| 庆元县| 辉南县| 大港区| 都匀市| 浦县| 利川市| 邳州市| 秦皇岛市| 精河县| 郓城县| 武安市| 万安县| 呼和浩特市| 昌图县| 贵溪市| 姚安县|