1. 程式人生 > >Scala學習5之scala與java的不同之總結1

Scala學習5之scala與java的不同之總結1



1.scala不同宣告變數的具體型別,只需要宣告是var還是val,即變數或不變數,由編譯器自動判斷。而java需要具體宣告,比如Int,String

2.scala函式宣告返回值是宣告在後面,而且可以不用return,直接在最後寫返回變數或常量即可。比如

    def main(args:Array[String]):Int={

     println("hello")

     1

   }

而java或者c需要return

3.scala不用分號結束,而java需要

scala:
println("hello scala")

java:
println("hello java");

scala設計者覺得多輸入一個字元都是浪費,所以編寫從簡

4.scala中賦值語句是unit的,所以不能串聯:

x=y=1 //有問題
y=1返回值是unit,所以x賦值有問題

而java和c++可以

5.scala沒有提供break和continue來推出迴圈,而java可以。

   scala解決辦法:設定boolean變數,或者使用Breaks物件;continue不知道怎麼使用

package test
import scala.util.control.Breaks._
object test3 {
  def main(args:Array[String]){
    println("hello test3")
    var test=new test2() 
    test.main1()
    
    breakable{
      for(i<-0 to 10){
        if(i==5) break
        println(i);
      }
    }
    println(test4);
  }
  def test4():Int={
    return 1
  }
}
//scala可以使用return

6.scala的for可以用守衛,java不能這麼表達

for(i<- 0 to 5 ;j<-0 to 5 if i!=j){]

7.scala萬用字元為‘_’,java為‘*’

8.scala的構造器名稱為this,而java和C++為與類名稱一樣,當需要修改類名稱時,顯然java麻煩。

    scala的輔助構造器前一定要有一個主構造器或者其他輔助構造器

    而且scala的主構造器引數可以直接放在類後面

class Person(name:String,age:Int) {

}
而java行數比較多

9.java中內部類從屬於外部類,但是scala例項化的內部類是不同的。可以使用型別投影Network#Person,表示任何Network的Person類