隐式类(函数的默认参数值)

发布于:2024-12-18 ⋅ 阅读:(61) ⋅ 点赞:(0)
package test54

//函数的默认参数
//如何动态去设置函数默认参数值!
//隐式参数值
object test {
  def sayName(implicit str:String="小陈"):Unit={
    println(str)
  }
  //隐式参数值
 // implicit val x:String="小美。。"
  implicit val x1:String="小美丽。。。"


  def main(args: Array[String]): Unit = {
    sayName("小明")
    sayName()
    sayName  //默认参数

  }
}
package test54
//前提:写好的代码不要动!
//隐式类:implicit class==隐式转换函数+类
object test1 {
  class BaseUser(){
    def insertUser(){println("insertUser")}
  }
  //第一步:定义一个有updateUser功能分类PowerUser
  //第二步:定义一个隐式转换函数,把BaseUser--->powerUser
 implicit class PowerUser(u:BaseUser){
    def updateUser(){println("updateUser")}
  }
//  implicit def transform(u:BaseUser):PowerUser={
//    new PowerUser()
//  }


  //给这个类添加新功能
  def main(args: Array[String]): Unit = {
    val u1=new BaseUser()
    u1.insertUser()
    u1.updateUser()//添加一个新功能
  }
}

 *********

package test54
import scala.language.postfixOps
//给所有整数添加新功能
//1.判断是否偶数
//2.阶乘.5!=5*3*2*1=120
//           1+2+3+4+5
object test2 {
  implicit class XXX(d:Int){
  def isEven:Boolean= {
    d % 2==0
  }
    //补充一个求阶乘的函数,函数的名称就是i
    def ! :Int={
      var rs=1
      for (i <-1to d){
        rs *= i
      }
      rs
    }
  }
  def main(args: Array[String]): Unit = {
    println(10.isEven)//true
    println(9.isEven)//false
    println(5.!)//120
    println(5.!)//120
    println(10!)//3628800
  }
}


网站公告

今日签到

点亮在社区的每一天
去签到