Scala的常见应用

一、递归函数定义

   def ji(n: Int): Int = {
      if (n == 1) 1
      else n * ji(n - 1)
    }
    println(ji(5))

二、指定参数名传参

def Test1(name:String,age:Int):Unit={
      println("姓名:"+name+",年龄"+age)
    }
    Test1(age = 14, name = "tom")

三、匿名函数改名

val abc: (Int, Int) => Int = (a, b) => a + b
    val bca = abc
    println(bca(3, 5))

四、函数作为参数传递

def Test(num1: Int, num2: Int, fun: (Int, Int) => Int): (Int, Int) => Int = {
      if (fun(num1, num2) % 2 == 0) (a, b) => a + b
      else (a, b) => a - b
    }
    println(Test(12, 21, (a, b) => a * b)(45, 76))

五、隐式函数

package cn.kgc.kb11

object Impliciteg {
  //隐式方法的定义
  implicit def stringToInt(value: String): Int = Integer.parseInt(value)

  implicit def doubleToInt(value: Double): Int = value.toInt

  implicit def floatToInt(value: Float): Int = value.toInt

  implicit val num: Int = 10
  implicit val name: String = "green"

  implicit def intToString(value: Int): String = {
    println("传入的数据是:" + value)
    value.toString + "hehe:haha"
  }

  implicit class NumOperation(demo: Demo1) {
    def sum(a: Int, b: Int): Int = {
      println("a value" + a)
      println("b value" + b)
      a + b
    }

    def ji(a: Int, b: Int): Int = {
      a * b
    }
  }

}
package cn.kgc.kb11

import cn.kgc.kb11.Impliciteg._

class Demo1{

}

object Demo1 {
  def main(args: Array[String]): Unit = {
    val demo1 =new Demo1
    val result = demo1.sum(3,4)
    val result1 = demo1.ji(5,6)
    println(result)

        val a: Int = "3"
    val b: Int = 5.5
    val c: Int = 3.4f

    val d:String = 456
    println(d)
    //调用方法的时候,传参 > 隐式值 > 默认值
    //    implicit val num1:Int=11

    //三个传参
    implicit val num: Int = 12

    def sum(a: Int)(implicit b: Int = 5,name:String): Int = {
      println(name)
      a + b
    }
    println(sum(20)(10,"tom"))
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值