当前位置:网站首页>scala 10种函数高级应用
scala 10种函数高级应用
2022-08-10 14:46:00 【S_ng】
object TestCallByValue {
def main(args: Array[String]) {
delayedCalculator(transmitMe());
}
def transmitMe(): String = {
println("我在 transmitMe 方法中!")
return "transmitMe 返回值"; }
def delayedCalculator(t: String): Unit = {
println("在 delayedCalculator 方法--开始")
println("正式调用传过来的函数: " + t)
println("在 delayedCalculator 方法--结束") } }
object TestCallByName {
def main(args: Array[String]) {
delayedCalculator(transmitMe());
}
def transmitMe(): String = {
println("我在 transmitMe 方法中!")
return "transmitMe 返回值";
}
def delayedCalculator(t: => String): Unit = {
println("在 delayedCalculator 方法--开始")
println("正式调用传过来的函数: " + t)
println("在 delayedCalculator 方法--结束")
}
}
object TestCallByParaName {
def main(args: Array[String]) {
printBabyNames(second = "张二", first = "张一");
}
def printBabyNames(first: String, second: String): Unit
= {
println("第一个孩子叫=" + first);
println("第二个孩子叫=" + second);
} }
object TestNonFixParas {
def main(args: Array[String]) {
printAllParasValue("one", "two", "three", "four");
}
def printAllParasValue(paras: String*): Unit = {
for (temp <- paras) {
println(temp);
} }
}
object TestDefaultParaFunction {
def main(args: Array[String]) {
println("完全使用默认值的返回值 : " + salaryMoney());
println("部分使用默认值的返回值 : " + salaryMoney(10));
println("部分使用默认值的返回值 : " + salaryMoney(10,10000));
}
def salaryMoney(a: Int = 5, unit: Int = 1000): Int = {
return a * unit
} }
object TestRecusive {
def main(args: Array[String]) {
var n=4
println(n+"的阶乘为="+myFactorial(n))
}
def myFactorial(n: Int): Int = {
if (n <= 1)
return 1
else
return n * myFactorial(n - 1) } }
object TestHighFunctionByTransmitFunctionPara {
def main(args: Array[String]) {
delayedCalculator(transmitMe());
}
def transmitMe(): String = {
println("我在 transmitMe 方法中!")
return "transmitMe 返回值"; }
def delayedCalculator(t: => String): Unit = {
println("在 delayedCalculator 方法--开始")
println("正式调用传过来的函数: " + t)
println("在 delayedCalculator 方法--结束") } }
object TestHighFunctionByRetFunction {
def main(args: Array[String]) {
var mySalaryFun=multiplyBy(1000);
println(mySalaryFun(10));
}
def multiplyBy(salaryUnit:Int)=(x:Int)=>salaryUnit*x }
object TestEmbedFunction {
def main(args: Array[String]) {
var msg="HelloWorld";
printMessage(msg);
}
def printMessage(msg: String): Unit = {
def printMessageInner(msg: String): Unit = {
println(msg);
}
printMessageInner(msg);
} }
函数定义:
var inc = (x:Int) => x+1
函数使用:
var x = inc(8)+1
import java.util.Date
object TestPartialParasFunction {
def main(args: Array[String]) {
val name="张三"
sayHello(name, "上午好")
Thread.sleep(1000)
sayHello(name, "中午好")
Thread.sleep(1000)
sayHello(name, "晚上好") }
def sayHello(name: String, message: String)
= {
println(name + "----" + message) } }
def main(args: Array[String]) {
val name="张三"
val partialSay=sayHello(name,_:String);
partialSay("上午好")
Thread.sleep(1000)
partialSay("中午好")
Thread.sleep(1000)
partialSay("晚上好") }
def sayHello(name: String, message: String) = {
println(name + "----" + message) }
def add(x: Int, y: Int) = x + y;
def main(args: Array[String]) {
println(add(3,4));
}
def add(x: Int, y: Int) = x + y;
def add(x:Int)(y:Int) = x + y
object TestCurryingFunction {
def main(args: Array[String]) {
//对应柯里化形式 1 的使用
var curryingAdd1 = add1(3)
//对应柯里化形式 2 的使用
var curryingAdd2 = add2(3)(_)
println(curryingAdd1(4));
println(curryingAdd1(4));
}
//柯里化形式 1
def add1(x: Int) = (y: Int) => x + y;
//柯里化形式 2
def add2(x: Int)(y: Int) = x + y; }
边栏推荐
猜你喜欢
随机推荐
Rich Dad Poor Dad Reading Notes
Websocket realizes real-time change of chart content
Understanding_Data_Types_in_Go
使用mysq语句操作数据库
The a-modal in the antd component is set to a fixed height, and the content is scrolled and displayed
PCL 最小二乘拟合空间曲线
How to code like a pro in 2022 and avoid If-Else
BCG库简介
Flask框架——MongoEngine使用MongoDB数据库
兆骑科创创业赛事活动发布平台,创业赛事,项目路演
Appium for APP automation testing
富爸爸穷爸爸之读书笔记
1004 (tree array + offline operation + discretization)
舵机内部结及工作原理浅析[通俗易懂]
司空见惯 - 股市狠狠下跌后,何時能反弹?
蓝帽杯半决赛火炬木wp
串口服务器调试助手使用教程,串口调试助手使用教程【操作方式】
sql语句 异常 Err] 1064 – You have an error in your SQL syntax; check the manual that corresponds to your
DB2查询2个时间段之间的所有月份,DB2查询2个时间段之间的所有日期
Steam教育在新时代中综合学习论