ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Scala 基本函数

2021-12-05 18:58:21  阅读:144  来源: 互联网

标签:基本 函数 Scala Int 参数 返回值 方法 Unit


  1. Scala 方法的定义
    在这里插入图片描述
//定义有参数函数
  def max(x:Int,y:Int):Int={
    if(x>y)
      x
    else
      y
  }
  //没有参数的函数定义
  def test():Unit={

  }

注意点:

  • 方法定义语法 用 def 来定义
  • 可以定义传入的参数,要指定传入参数的类型
  • 方法可以写返回值的类型也可以不写,会自动推断,有时候不能省略,必须 写,比如在递归方法中或者方法的返回值是函数类型的时候。
  • scala 中方法有返回值时,可以写 return,也可以不写 return,会把方法中最后 一行当做结果返回。当写 return 时,必须要写方法的返回值。
  • 如果返回值可以一行搞定,可以将{}省略不写
  • 传递给方法的参数可以在方法中使用,并且 scala 规定方法的传过来的参数为 val 的,不是 var 的。
  • 如果去掉方法体前面的等号,那么这个方法返回类型必定是 Unit 的。这种说法 无论方法体里面什么逻辑都成立,scala 可以把任意类型转换为 Unit.假设,里 面的逻辑最后返回了一个 string,那么这个返回值会被转换成 Unit,并且值会 被丢弃。
  1. 递归方法
//递归函数
  def test(n:Int):Int={
    //定义递归的边界
    if(n==1)
      1
    else
      n*test(n-1)
  }

  1. 参数有默认值的方法
    默认值的函数中,如果传入的参数个数与函数定义相同,则传入的数值会覆盖 默认值。
    如果不想覆盖默认值,传入的参数个数小于定义的函数的参数,则需要指定参数名称。
 //默认值参数的函数
  def test1(x:Int,y:Int=100):Int={
    x+y
  }
println(test1(200))
  1. 可变参数的方法

 //不定长的参数函数
 //注意:多个参数逗号分开
  def test2(x:Int*):Unit={
    println(x)
  }
  1. 匿名函数
    1 . 有参匿名函数
    2 . 无参匿名函数
    3 .有返回值的匿名函数
    可以将匿名函数返回给 val 定义的值
//匿名函数
  //匿名函数不能定义返回值类型,由其自动推断
  var value=(x:Int,y:Int) => {
    x+y
  }
  1. 偏应用函数
    偏应用函数是一种表达式,不需要提供函数需要的所有参数,只需要提供部分,或 不提供所需参数。
//偏应用函数
  def printLog(date:Date,log:String):Unit={
    println("时间:"+date+"日志:"+log)
  }

private val fun: String => Unit = printLog(d, _: String)
  fun("abc")
  fun("efg")
//时间:Sun Dec 05 18:47:13 CST 2021日志:abc
//时间:Sun Dec 05 18:47:13 CST 2021日志:efg

标签:基本,函数,Scala,Int,参数,返回值,方法,Unit
来源: https://blog.csdn.net/manba_yqq/article/details/121732899

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有