当前位置:网站首页>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)+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]) {
//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; }
边栏推荐
猜你喜欢
线上线下课程教学培训小程序开发制作功能介绍
E. Cross Swapping(并查集变形/好题)
程序调试介绍及其使用
基于ArcGIS水文分析、HEC-RAS模拟技术在洪水危险性及风险评估
微信小程序,自定义输入框与导航胶囊对其
Based on Azuki Series: NFT Valuation Analysis Framework "DRIC"
解题-->在线OJ(十九)
符合信创要求的堡垒机有哪些?支持哪些系统?
Analysys and the Alliance of Small and Medium Banks jointly released the Hainan Digital Economy Index, so stay tuned!
正则表达式(包含各种括号,echo,正则三剑客以及各种正则工具)
随机推荐
Understanding_Data_Types_in_Go
fastposter v2.9.1 程序员必备海报生成器
字节终面:CPU 是如何读写内存的?
$'\r': command not found
Mysql statement analysis, storage engine, index optimization, etc.
Go Context基本使用
[Letter from Wu Enda] The development of reinforcement learning!
Summary of tensorflow installation stepping on the pit
【数仓设计】企业数仓为什么要进行分层?(六大好处)
正则表达式(包含各种括号,echo,正则三剑客以及各种正则工具)
无线网络、HTTP缓存、IPv6
$‘\r‘: command not found
systemui状态栏添加新图标
阿里五位MySQL封神大佬耗17个月总结出53章性能优化法则
epoll学习:思考一种高性能的服务器处理框架
LeetCode_2598_剑指Offer Ⅱ 091.粉刷房子
MySQL 原理与优化:Update 优化
兆骑科创创业赛事活动发布平台,创业赛事,项目路演
网络工程师的背包(EDC总结推荐)
TestLink Export Use Case Transformation Tool