为什么常识

下面几个 scala 函数的不同之处有哪些?

生活词典 changshi.cidiancn.com

阅读: 101

下面几个 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:" param2 个答案

答案 1:

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

答案 2:

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

分享常识给亲友.