scala函数

本文详细介绍了Scala中函数的基本定义方法,包括参数类型指定、返回值类型推断、单行与多行函数体的使用,以及如何将函数赋值给变量和作为参数传递等高级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数 必须给出参数类型,但是不一定给出函数的返回值类型,只要右侧函数体不包含递归语句,Scala就可以自己推断返回值类型
def 函数名(参数名:类型,参数名1:类型2):返回类型 = {}

explame:

def sayHello(name:String,age:Int) = { 
    print("name: "+name + " age: "+age)
}
:paste/** 多行函数用{}包含函数体 **/
def sayHello(name:String,age:Int) = { 
    if(age > 18){
        println("name: "+name + " age: "+age + " i am a audlt \n")
        age/** if是有返回值的 这里是age **/
    }else{
        println("name: "+name + " age: "+age + " i am a boy \n")
        age/** if是有返回值的 这里是age **/
    }
}
/** 单行函数 **/
scala> def sayHello(name:String) = println("hello " + name)
sayHello: (name: String)Unit

scala> sayHello("xp")
hello xp
/** 函数赋值给变量 **/
scala> def sayHello(name:String) = println("hello" + name)
sayHello: (name: String)Unit


scala> val sayHelloFun = sayHello _
sayHelloFun: String => Unit = <function1>

scala> sayHello
sayHello      sayHelloFun   

scala> sayHelloFun("xp")
helloxp

/** 匿名函数赋值给变量 **/
/** val 变量 = 参数列表 => 函数体 **/
scala> val sayHello = (name:String) => print("hello" + name)
sayHello: String => Unit = <function1>

scala> sayHello
sayHello      sayHelloFun   

scala> sayHello("DD")
helloDD

scala> val sayHello = (name:String) => print("hello" + name)
sayHello: String => Unit = <function1>

/** 高阶函数 **/
scala> def greeting(func:(String) => Unit,name:String) {func(name)}
greeting: (func: String => Unit, name: String)Unit

scala> greeting(sayHelloFun,"CC")
helloCC
/** 高阶函数返回函数 **/
scala> def greeting(name:String) = (name:String) => println("hello "+name)
greeting: (name: String)String => Unit

scala> val greet = greeting("hello")
greet: String => Unit = <function1>

scala> greet("xp")
hello xp

 

转载于:https://my.oschina.net/u/2253438/blog/918900

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值