scala的概念:
scala是乙個物件導向和面向函式式的多正規化程式語言,基於
jvm,執行於
j**a虛擬機器,相容現有j**a程式。
在scala程式設計中,「每個值都是物件,每個符號都是方法操作」。
在面向函式中,函式是乙個物件。他跟字串、數值具有同等地位,也就是說函式可以賦值給乙個變數,可以作為方法的引數,可以作為方法的返回值。函式操作在程式中是乙個輸入到輸出的對映關係。輸入引數不可變是函式式程式設計的基石。
"函式式程式設計"是一種"程式設計正規化"(programming paradigm)。它屬於"結構化程式設計"的一種,主要思想是把運算過程盡量寫成一系列巢狀的函式呼叫。
scala的優點:
1.優雅:scala語言設計非常貼合程式開發思維方式,並且能夠很輕鬆的實現複雜的功能。這是框架設計師第乙個要考慮的問題,框架的使用者是應用開發程式設計師,api是否優雅直接影響使用者體驗。
2.速度快:scala語言表達能力強,一行**抵得上j**a多行,開發速度快;scala是靜態編譯的,所以和jruby,groovy比起來速度會快很多。
3.能融合到hadoop生態圈: scala是目前大資料處理框架spark以及訊息中介軟體kafka的基礎開發語言,能夠很容易融入大資料生態圈。hadoop現在是大資料事實標準,spark並不是要取代hadoop,而是要完善hadoop生態。jvm語言大部分可能會想到j**a,但j**a做出來的api太醜,或者想實現乙個優雅的api太費勁。
4.語言表達能力強:scala的語
法結構非常簡單,但是其表達能力很強。比如迴圈遍歷集合操作,j**a至少需要4行 ,scala基本上1行**就可以搞定,能夠節省大量的開發成本,並且釋放了我們的鍵盤。
5.scala是基於jvm的程式語言,並且是靜態型別。能夠跟j
**a語法相互相容,且具有可移植的特性。
scala宣告變數:
val:不可變變數,一旦宣告在其生命週期中不可變,相當於j**a中的final修飾的變數。
var: 可變變數,可變指的是變數的值可變,變數的資料型別不可變。
注:宣告變數時,型別可以省略,型別確定後就不能修改。scala編譯器會自動推斷變數的型別,必要的時候可以指定型別。
scala常用資料型別:
1.整數型別:byte 、short、char、int、long
2.浮點型別:float、double
3.布林型別:boolean
4.字串型別:string
注意:
1.整型的省略資料型別後,預設的都是int型別
2.浮點的省略資料型別後,預設的都是double型別
scala運算子:
1.算數運算子 : + - * / %
2.比較運算子:> < >= <=
3.邏輯運算子:&& || !
4.位運算子:>> 《等
scala表示式:
1.條件表示式:if表示式可以有多種不同型別的返回值,在scala中無返回值的情況值預設返回 「()」
2.塊表示式:使用花括號括起來一段具有返回值的程式,就是塊表示式。其中塊的最後乙個表示式的值就是塊的值。
3.for迴圈:該表示式會返回新的資料集合
scala的方法定義:
1.方法的返回值是方法中最後乙個表示式,並且返回值型別可以省略。
2.方法的引數預設修飾符也是val,並且不能使用修飾符修飾。
3.針對遞迴呼叫的方法一定不能省略返回值。
scala中方法和函式的區別:
在函式式程式語言中,函式是「頭等公民」,它可以像任何其他資料型別一樣被傳遞和操作。函式是乙個物件,繼承自fuction。
方法只能作為物件的成員存在。
scala的資料結構:
1.陣列 array
2.列表 list
3.元組 tuple
4.對映 map
5.集合 set
其中array
、list、map、set資料結構又分為了可變和不可
變以上是
本篇隨筆的內容,下一章將會講述資料結構
的詳細資訊和物件導向程式設計
。
scala知識點(一)
1.drop,dropright,dropwhile drop drop n int list a 丟棄前n個元素,返回剩下的元素 dropright dropright n int list a 丟棄最後n個元素,返回剩下的元素 dropwhile dropwhile p a boolean li...
scala的一些知識點(一)
函式 val sum x int,y int 方法 def sum x int,y int 定義方法 def m1 x int,f int int f x def m2 f int,int int f 2,3 def m3 f int,int int,x int,y int f x,y 定義函式 v...
scala 元組tuple的幾個知識點
通過下標 n取資料不多說了,下面是幾個比較有意思的知識點 知識點1 tuple 和function 和producct一樣最多隻支援22個元素 比如 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 這樣是沒問題的 但是 0,1,2,3,...