scala----常用方法 類的定義

T D Z發表於2020-12-15

常用方法

1. 聚合常用函式
sum求和 //底層是呼叫的foldLeft
reduce聚合函式  arr.reduce(_+_) //底層呼叫的是reduceLeft
reduceLeft
_代表資料型別
fold(0)(_+_) 55   fold(100)(_+_) 155   fold(1000)(_+_) 1055   //第一個括號是指定了起始值
foldLeft(1)(_+_)  //資料型別可以不相同 更加靈活
product相乘

2. mapValues //對值進行操作,再跟值拼接

3. 排序方法
Sorted  //升序
Sorted(ordering[Int].reverse)  //倒序
nums.sortBy(x=>x)  //排序 更加靈活  括號中的函式可以改變排序規則,不可以改變資料型別
SortWith(_>_)  //降序
SortWith(_<_)  //升序

4. 陣列中取元素方法
take(n)  //從陣列中取n個元素,返回的是陣列, 從頭開始不排序
takeRight(n)  //陣列中從尾部取n個元素
takeWhile(條件表示式)  //從前面開始取,渠道不滿足條件的位置,如果第一個就不滿足條件,就一個都不取
aggregate()()

5. 最大小值
Math.min(_,_)  //兩數相比取最小
Math.max(_,_)  //兩數相比取最大

6. par   //並行化集合

類的定義

類和半生物件中的屬性和方法都可以用訪問許可權修飾符修飾
類和半生物件可以相互訪問private修飾的變數和方法
private[this]如果在類中定義,就只能在類的內容使用
private[this]如果在類中定義,就只能object的內容使用

package cn.doit.com.day02.demo02
/*
  類和伴生物件中的屬性和方法都可以用訪問許可權修飾符修飾
  類和伴生物件可以相互訪問private修飾的變數和方法
  private[this]如果在類中定義,就只能在類的內容使用
  private[this]如果在類中定義,就只能object的內容使用

  類前面加上private就是包訪問許可權,在當前包和自爆中可以訪問
  在類名構面加的private是私有的構造器,只能在半生物件中訪問
 */

//private[day02]包訪問許可權,只能在day02包及其子包中訪問
private[day02] class User {

  var name: String = _
  //在scala中,如果用private修飾的成員變數,在其他類或者object中就無法訪問了
  //private修飾的成員變數只能在類中或者半生物件中使用
  private var age: Int = _
  //物件私有手段,訪問許可權更加嚴格,只能在類的內部使用[在例項的內部使用]
  private[this] var sal = 12000

  def printAge():Unit={
    println(age)
    println(sal)
  }
  def printSal():Unit={
    println(sal)
  }
}
/*
    伴生物件
    1.使用object定義,object的名字和類名一致
    2.object和class在同一個.class檔案中
 */
object User{
  def main(args: Array[String]): Unit = {
    val user = new User
    user.name = "wgg"
    user.age = 28

    user.printAge()
  }
}

 

相關文章