日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scala _02基础

發布時間:2024/2/28 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scala _02基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Scala基礎

1、數據類型

?

2、變量和常量的聲明

  • 定義變量或者常量的時候,也可以寫上返回的類型,一般省略,如:val a:Int = 10
  • 常量不可再賦值
package com.henu.scala/*** 定義變量和常量* 變量 :用 var 定義 ,可修改* 常量 :用 val 定義,不可修改*/ object ScalaDemo01 {def main(args: Array[String]): Unit = {val a:Int = 10print(a)var name = "george"println(name)name = "kangkang"val x = 100println(x) // x = 200//編譯不通過,不能給常數再次賦值} }

3、類和對象

  • 創建類
package com.henu.scalaclass Person {val name = "george"val age = 22def getName() = {"my name is " + name} }
  • 創建對象
package com.henu.scalaobject PersonDemo {def main(args: Array[String]): Unit = { // val person = new Person()var person = new Person()println(person)println(person.age)println(person.getName())} }
  • 對象中的apply方法

object中不可以傳參,當創建一個object時,如果傳入參數,那么會自動尋找object中的相應參數個數的apply方法。

package com.henu.scala /*** object單例對象中不可以傳參,* 如果在創建object時傳入參數,那么會自動根據參數的個數去Object中* 尋找響應的apply方法。*/ object ApplyDemo {def apply(s : String) = {println("name is " + s)}def apply(s : String,age : Int) = {println("name is " + s + ",age is " + age)}def main(args: Array[String]): Unit = {ApplyDemo("george")ApplyDemo("george",22)} }
  • 伴生類和伴生對象
package com.henu.scala/*** 單例對象與類同名時,這個單例對象被稱為這個類的伴生對象,* 而這個類被稱為這個單例對象的伴生類。伴生類和伴生對象要在* 同一個源文件中定義,伴生對象和伴生類可以互相訪問其私有成員。* 不與伴生類同名的單例對象稱為孤立對象。* @param pname* @param page*/ class Person(pname : String , page : Int){var name = Person.namename = "ddd"val age = pagevar gender = "m"def this(name: String,age: Int,g: String){this(name,age)gender = gprintln(name + age + gender)}def getName() = {"my name is " + name} } //public class Main object Person{val name = "kangkang";// public static void main(String[] args) {def main(args: Array[String]): Unit = {val person = new Person("george",22,"w");println(person.age)println(person.getName())println(person.gender)} }

注意點:

  • 建議類名首字母大寫 ,方法首字母小寫,類和方法命名建議符合駝峰命名法。
  • scala 中的object是單例對象,相當于java中的工具類,可以看成是定義靜態的方法的類。object不可以傳參數。另:Trait不可以傳參數
  • scala中的class類默認可以傳參數,默認的傳參數就是默認的構造函數。重寫構造函數的時候,必須要調用默認的構造函數。
  • class 類屬性自帶getter ,setter方法。
  • 使用object時,不用new,使用class時要new ,并且new的時候,class中除了方法不執行,其他都執行。
  • 如果在同一個文件中,object對象和class類的名稱相同,則這個對象就是這個類的伴生對象,這個類就是這個對象的伴生類。可以互相訪問私有變量。
    • if else
    package com.henu.scalaobject IfElseDemo {def main(args: Array[String]): Unit = {val age = 22if (age < 22){println("age is not")}else if (age == 22){println("age is right")}else{println("oh no!!!")}} }
    • for ,while,dowhile

    to和until 的用法(不帶步長,帶步長區別)?

    package com.henu.scalaobject ForWhileDoWhileDemo {/*** to和until* 例:* 1 to 10 返回1到10的Range數組,包含10* 1 until 10 返回1到10 Range數組 ,不包含10*/def main(args: Array[String]): Unit = {println(1 to 10)//Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)println(1 to (10))//Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)println(1 to (10,2))//Range(1, 3, 5, 7, 9)println(1.to(10,2))//Range(1, 3, 5, 7, 9)println(1 until 10)//Range(1, 2, 3, 4, 5, 6, 7, 8, 9)println(1 until(10))//Range(1, 2, 3, 4, 5, 6, 7, 8, 9)print(1 until(10,3))//Range(1, 4, 7)} }

    創建for循環

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

    創建多層for循環

    //可以分號隔開,寫入多個list賦值的變量,構成多層for循環//scala中 不能寫count++ count-- 只能寫count+var count = 0//相當于雙層的嵌套循環for (i <- 1 to 10; j <- 1 until 10){println("i=" + i + ", j = " + j)count += 1}println(count)//90//例子:打印乘法表for (i <- 1 until 10; j <- 1 until 10){if (i >= j){print(i + "*" + j + "=" + i*j + " ")}if (i == j){println()}}

    for循環中可以加條件判斷,可以使用分號隔開,也可以不使用分號

    for (i <- 1 to 10; if (i%2) == 0;if (i == 4)){println(i)}

    scala中不能使用count++,count只能使用count = count+1 ,count += 1

    for循環用yield 關鍵字返回一個集合

    while循環,while(){},do {}while()

    //將for中的符合條件的元素通過yield關鍵字返回成一個集合var list = for (i <- 1 to 10; if (i > 5)) yield ifor (w <- list){println(w)}/*** while循環*/var index = 0while(index < 100){println("第"+index+"次while循環")index += 1}println(index)index = 0println("**************************")do {index += 1println("第"+index+"次while循環")}while(index < 100)

    ?

    超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

    總結

    以上是生活随笔為你收集整理的Scala _02基础的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。