Scala 中的 Functions Call

首页 / Scala入门教程 / Scala 中的 Functions Call

通常,函数的参数是按值参数;也就是说,参数的值是在传递给函数之前确定的。但是,如果我们需要编写一个函数,该函数接受在函数中被调用之前不希望对其求值的表达式作为参数,该怎么办?在这种情况下,Scala提供了按姓名呼叫参数。

按名称的呼叫机制将代码块传递给该呼叫,并且每次该呼叫访问该参数时,都会执行该代码块并计算值。在这里,delay打印一条消息,表明已输入该方法。接下来,延迟打印一条带有其值的消息。最后,延迟回报为" t"。

链接:https://www.learnfk.comhttps://www.learnfk.com/scala/functions-call-by-name.html

来源:LearnFk无涯教程网

以下程序显示了如何实现按名称呼叫。

无涯教程网

object Demo {
   def main(args: Array[String]) {
        delayed(time());
   }

   def time()={
      println("Getting time in nano seconds")
      System.nanoTime
   }
   def delayed( t: => Long )={
      println("In delayed method")
      println("Param: " + t)
   }
}

将上述程序保存在 Demo.scala 中。以下命令用于编译和执行该程序。

命令

\>scalac Demo.scala
\>scala Demo

输出

In delayed method                                                             
Getting time in nano seconds                                                  
Param: 2027245119786400 

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

ZooKeeper实战与源码剖析 -〔么敬国〕

设计模式之美 -〔王争〕

后端技术面试 38 讲 -〔李智慧〕

说透敏捷 -〔宋宁〕

TensorFlow 2项目进阶实战 -〔彭靖田〕

爆款文案修炼手册 -〔乐剑峰〕

现代React Web开发实战 -〔宋一玮〕

手把手带你写一个MiniSpring -〔郭屹〕

手把手带你搭建推荐系统 -〔黄鸿波〕

好记忆不如烂笔头。留下您的足迹吧 :)