String = param => "Param:" paramval f2:(Int=>String) = param=>"Param:" paramval f3=(param:">
首页 > 教育学习 > 为什么 > 下面几个 scala 函数的不同之处有哪些?

下面几个 scala 函数的不同之处有哪些?
2012-01-19 17:49:47   来源:   点击:

    下面几个 scala 函数的不同之处有哪些?特别是f1和f2不太懂。def f0(param:Int):String = "Param:" param val f1:Int => String = param => "Param:" paramval f2:(Int=>String) = param=>"Param:" paramval f3=(param:Int) => "Param:" param

    2 个答案

    • 答案 1:

      f0就是输入int返回字符串,字符串格式有特殊要求f1就是说明了Int= > String的函数字面量,等于号后是函数内容,还是根据一个参数得到一个特殊格式的字符串f2声明时候就是加了个括号,含义上变化不大f3是熟练后经常写的方式,函数生命隐含了参数到结果的映射,通过函数体整体上说明
    • 答案 2:

      f1和f2木有啥区别哦。都是定义一个类型为(Int= > String)的不变量。也就是一个值为一个函数的不变量。f0定义一个方法,使用上f0和f1f2区别不大,但底层的实现有些区别,比如f0是多对象共用内存,f1f2是每个对象分配不同的内存,类似的区别有一些,可以看看网上关于scala 函数和方法的区别的讨论,比较多。f3和f1f2是一样的,只是没有显式申明类型,由编译器功过类型推断来提供。

相关热词搜索:

上一篇:什么行业适合做电子邮件营销?
下一篇:对用户研究的框架性有哪些经典的描述与建议?