当前位置:网站首页>10 advanced functions of scala
10 advanced functions of scala
2022-08-10 15:21: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("Formally call the passed function: " + 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("Formally call the passed function: " + t)
println("在 delayedCalculator 方法--结束")
}
}object TestCallByParaName {
def main(args: Array[String]) {
printBabyNames(second = "张二", first = "张一");
}
def printBabyNames(first: String, second: String): Unit
= {
println("The first child called=" + first);
println("The second child called=" + 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("Use the default return value entirely : " + salaryMoney());
println("Some return values using default values : " + salaryMoney(10));
println("Some return values using default values : " + 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("Formally call the passed function: " + 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)+1import 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 + yobject TestCurryingFunction {
def main(args: Array[String]) {
//Corresponds to the curried form 1 的使用
var curryingAdd1 = add1(3)
//Corresponds to the curried form 2 的使用
var curryingAdd2 = add2(3)(_)
println(curryingAdd1(4));
println(curryingAdd1(4));
}
//Curried form 1
def add1(x: Int) = (y: Int) => x + y;
//Curried form 2
def add2(x: Int)(y: Int) = x + y; }边栏推荐
- const修饰的指针变量(详解)
- Websocket realizes real-time change of chart content
- Flask框架——基于Celery的后台任务
- Steam教育在新时代中综合学习论
- SWIG tutorial "two"
- Zijin Example
- NFT数字藏品——数字藏品发行平台开发
- DB2查询2个时间段之间的所有月份,DB2查询2个时间段之间的所有日期
- Introduction to the Internet (2)
- 2022-08-10 Daily: Swin Transformer author Cao Yue joins Zhiyuan to carry out research on basic vision models
猜你喜欢

Azure IoT Partner Technology Empowerment Workshop: IoT Dev Hack

SWIG tutorial "two"

TCP为什么是三次握手和四次挥手?

Redis -- Nosql

消息称原美图高管加盟蔚来手机 顶配产品或超7000元

数据在内存中的存储

Mysql statement analysis, storage engine, index optimization, etc.

WSL 提示音关闭

win2012安装Oraclerac失败

It is reported that the original Meitu executive joined Weilai mobile phone, the top product may exceed 7,000 yuan
随机推荐
SWIG教程《一》
fastposter v2.9.1 程序员必备海报生成器
PCL 最小二乘拟合空间曲线
紫金示例
DB2查询2个时间段之间的所有月份,DB2查询2个时间段之间的所有日期
符合信创要求的堡垒机有哪些?支持哪些系统?
Epoll learn to think: a high performance server processing framework
JS entry to proficient full version
Azure IoT Partner Technology Empowerment Workshop: IoT Dev Hack
fatal error C1083 无法打开包括文件'io.h' No such file
解题-->在线OJ(十九)
Summary of tensorflow installation stepping on the pit
Pytest framework optimization
波士顿房价预测
王学岗—————————哔哩哔哩直播-手写哔哩哔哩硬编码录屏推流(硬编)(26节课)
pm2 static file service
[Letter from Wu Enda] The development of reinforcement learning!
常见SQL、API接口等常见约定
Alibaba的秒杀系统—千亿级并发设计手册上线了
【MindSpore易点通机器人-02】设计与技术选型