Scala基礎知識(二)

2022-07-13 08:57:11 字數 2376 閱讀 9398

1.條件表示式

object

conditiondemo

}

2.塊表示式

val result = 

else

if(x >= 1

) else

}

塊表示式中一般最後乙個引數就是表示式的返回值。

3.迴圈語句

for迴圈 1 to 10 ,to是乙個方法,是將1到10資料產生

for的格式1: for(i <- res1)object

fordemo

}練習:將乙個1到9的資料中的偶數取出來。

//

使用val更加的節省資源

val a1=array(1,2,3,4,5,6,7,8,9

)val a1=for(i<- a1;if(i%2==0)) yield i

練習:filter過濾

a1.filter(_%2==0)

_表示每次輸出的值

for迴圈通過角標開始

for(i <- 1

to a1.length)

println(a1(i-1))

for(i <- 1

until a1.length)

println(a1(i))

to是的操作,until是(]的操作

1 to 10  等同於 1.to(10)

5.在scala中是不存在操作符運算的,運算的底層都是使用方法來完成的。

scala>1-3

res1:int = -2

scala>1.-(3

)res2:double = -2.0

對於為什麼返回的是乙個double,這是因為它將第乙個1當做是double運算的,所以後來大印的就是double。

測試方法:將3定義成乙個val a的值,1.-(a)結果仍為double,將1定義為乙個val b的值,a.-(b)結果是int。

在原始碼中,方法的返回的型別和輸入的引數是和傳入引數有關的。

6.方法和函式

方法定義 def 方法名(引數列表):返回值型別 = 操作

方法定義:

def m1(a:int,b:int):int = x*y

方法呼叫

m1(3,5

)不寫返回值的型別

def m1(a:int,b:int) = x*y

注意:但是遞迴是必須要有返回值型別的。

7.函式定義

定義乙個函式,無名函式

(x:int,y:int)=>

有名函式

val f1=(x:int,y:int)=>

呼叫f1(引數)

8.函式有乙個特性就是可以作為引數傳入到方法裡面。

定義乙個函式

val f3=(x:int)=>x*10

準備乙個陣列,將陣列的值進行函式f3的操作

val a1=array(1,2,3,4,5,6,7,8,9

)a1.map(f3)

這也就是說函式式程式設計可以將資料的進行任意操作,這也是他的靈活性。

9.方法是通過方法名進行呼叫,函式是可以作為引數進行傳遞的。

10.a1.map(_*100) 將a1中資料乘以10.這個是不定義函式,也可以定義匿名函式

匿名函式

a1.map((x:int)=>x*100)

但是在a1中的引數都是知道的,這個時候就不需要指定資料的型別

a1.map(x=>x*10)

當然了最簡單的方式是

a1.map(_*100)

11.下劃線的作用

將方法轉化為函式,如果乙個函式的邏輯和方法的邏輯相同,那麼就可以使用下面的方法將方法轉換為函式。

def testzhanshu(x:int,y:int):int =

將上面的方法轉換為函式

val fun2 = testzhanshu_

總結:函式和方法的最大區別在於,函式可以作為引數進行傳遞。

定義函式的方式

val fun=(x:int,y:int)=>操作

val fun1 = (x:int,y:int)=>返回值[可以為任意的,可以是乙個元祖

返回值型別是可以設定的,也可以不需要設定的,因為元函式的返回值是可以自己推斷出來的。] =

val fun2:(int,double)=>(double,int)=

遞迴必須有返回值型別的

加入說沒有返回值的時候,這個時候返回值是unit,呼叫之後,返回值是乙個()

scala 基礎知識

1.def 定義的是乙個方法,用下劃線可以轉換為方法 2.window 換行符是 r n linux n 逐雲 windows 安裝scala編譯器 linux安裝scala編譯器1.變數宣告 object 型別代表 乙個helloworld的例項 object helloworld 2.常用型別 ...

基礎知識 二

1,較大陣列應該在main函式外宣告,否則可能因為 他作為臨時變數在堆疊段中佔據的空間過大,棧溢位 2,string.h memcpy b,a,sizeof int k a b 複製k個元素 memcpy b,a,sizeof a a b memset a,0,sizeof a 將陣列全部填充為零 ...

基礎知識 二

1.物件導向的基本特徵 封裝 繼承 多型 2.內連線與外連線的區別 內連線需要保證兩個表中的所有行都滿足連線條件 而外連線則不然 外連線不僅包含符合連線條件的行 還包括左表 右表或兩個邊接表中所有資料行 3.事務是資料庫中乙個單獨的執行單元 事務的三個特性是 acid,分別是原子性 一致性 隔離性 ...