范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

同样是定义一个函数,Scala和Java有何不同?

  函数定义是编程语言的基本能力。一等公民
  Java作为一个用类来实现面向对象编程的语言,类是作为一等公民存在的。类可以被自由的定义在几乎任何地方:类里、方法里,类可以被自由的赋值给一个值,自由的被作为函数参数传来传去。
  而函数的地位明显是低人一等的。哪怕再简单的函数,比如无参、返回值为void的run方法,都需要引入一个Runnable接口,才能把它赋值给某个变量。
  可以这么说,在Java的世界里,函数是类的附庸。我们知道,函数是逻辑的表达,如果每一个函数都需要一个对应的类作为载体,对于程序员和机器的负担未免都太重了。
  而在函数式编程的世界里,不用如此繁琐,函数就是一等公民。也就是说:函数可以被自由的定义在任何地方,包括类里、函数里。函数可以被自由的赋值给一个值,我们称之为function value。函数可以被自由的作为参数传来传入。
  Scala作为同时支持两种范式,并且更倾向于函数式的编程语言,自然是把函数作为了一等公民。函数值和函数字面量
  函数值(function value)是说,可以把函数字面量(function literals)赋值给一个值。
  比如:val add1 = (x: Int) => x + 1
  这个时候,如果直接调用add1(10)会得到11这个结果。而其中的(x: Int) => x + 1,就是我们所说的函数字面量。
  Java从8开始引入了Lambda表达式,绝大多数时候,我都是把函数字面量直接等价于Lambda表达式的。
  但是在读《Programming in Scala》的时候,作者说:
  Thus the distinction between function literals and values is that function literals exist in the source code, whereas function values exist as objects at runtime.
  这种关系用面向对象的观点来类比一下,class是存在于源代码里的,而实例则是存在于运行时的。同样的,函数字面量相当于是模板,函数值相当于运行时的实例。
  从刚才那个add1的例子里,这个例子不太好理解,实际上我觉得作者是针对于"闭包"这个概念提出的这个说法。闭包简介
  我们把刚才的add1稍微泛化一下,假设叫sum吧。val sum = (x: Int) => x + more
  等式的右边是一个函数字面量,当然直接敲这句话是不行的,会提示"not found: value more",也就是找不到more这个玩意,因此我们需要先定义more,比如var more = 1,这个时候可以重新定义一下刚才的add1。var more = 1 val add1 = (x: Int) => x + more
  这和最开始add1的写法是一样的。
  如果我们再修改一下more的值为10呢?那么可以很方便的定义出一个add10来。val add10 = (x: Int) => x + more
  其中的函数字面量还是一样的。而根据more的不同,我们有了add1和add10两个函数值。
  因此我们说,函数值是函数字面量的运行时表达,两者是实例和模板的关系。

悄悄地,知乎上线了自营电商作者程怡杨知潮编辑秦安娜微信公众号略大参考(IDhyzibenlun)01hr很难想象,知乎最狼性的业务决定,竟然是要卖货。从今年7月份做知乎知物的自营品类,到双十一上线自营电商业永辉盒马为什么拼不过Costco和山姆新零售是万能的吗?蓝科技观察Costco每年会员费收入达20多亿美元,净利润也是20多亿美元,为什么中国零售商拼不过Costco?新零售不是万能的,但避开新零售模式肯定是行不通的。为什么永辉阿里试水闪迪32GB至尊极速金卡简评自从购置了相机,已经在我生活中消失的SD卡便再次成为了我重要的照片存储工具,不过老式的SD卡在相机连拍的时候出现了卡顿的现象,所以没办法只能选择重新购买,在多方面考虑下,我决定选择创新新玩法,学习和趣味兼顾,咕咕机错题打印机孩子上三年级了,感谢老师这些年对错题本的坚持,虽然在前期有些抵制,但是也逐渐发现错题本的意义,我也因此过早的接触到错题打印机这样神奇的设备,帮我解决了很多麻烦,今天分享的是咕咕机G懂行的人从不买256G内存的手机,为什么?钱不够我不懂行,我买的MIX2S,82562018年的产品,依然流畅来吧,互相伤害啊这个问题不能从懂行或者不懂行这个角度去看待,因为许多理性消费的人,心里都明白一个道理,就是使用范俞敏洪将带百名老师直播卖农产品,你怎么看新东方在教培行业是大佬,但是如果改行到农产品直销,涉及到农村物流平台建设和农业供应链管理,俞总这么多年的积蓄可能都不够烧1年。农村市场看似前景无量,其实是个大坑。为什么这么说?国家想成为下一个李佳琦?双十一当天,山东这个电商科班生赚了上百万齐鲁晚报齐鲁壹点记者巩悦悦随着电商间的竞争加剧,今年的双十一战线被拉长至14天。在这个消费者狂欢购物的背后,山东一位刚刚走出校门的电商科班生带领26人的大学生团队,网上销售烘干海带电商给我们普通人带来了什么电子商务的兴起确实改变了很多,改变了我们的生活方式和习惯,出门不用带现金,扫码支付,可以扫共享单车,还可以在家打车。给我们生活带来了很多的便利。让我们变得越来越懒,所有行业的兴起都好评返现5元,小卡片背后的利益链深燃(shenrancaijing)原创作者邹帅编辑唐亚华消费者盈盈一度觉得,外卖和快递包裹里的好评返现小卡片就等于现金,这个羊毛,不薅白不薅。买个几块钱的东西,好评就能返现2块,马斯克玩火特斯拉暴跌12,工信部批复组建国家5G中高频器件中心国际方面美股收跌,标普跌0。35道指跌0。31纳指跌0。6新能源车全线走低,特斯拉大跌12元宇宙概念股ROBLOX涨42油价上涨,美油涨2英伟达发布最新虚拟世界创作工具白宫将加速翻高校人工智能人才培育战略的道与路摘要人工智能是我国经济社会可持续发展的核心驱动力,适应我国高速发展的人工智能人才培育战略是关键。经济社会高质量发展,需要能够促进可持续发展的治理与教育人才。要探索高校人工智能创新人
卖到供不应求!苹果145元抛光布再上架,是否为智商税?大家是否还记得,苹果在iPhone13系列发布之际,在官网上架了一款售价145元的抛光布。在当时,互联网上一片哗然,大多数用户都在吐槽其价格离谱,毕竟普通的抛光布有个十几块就算贵的饱受批评的19美元苹果抛光布重新上架金融界1月12日消息,苹果公司售价19美元的抛光布因定价过高在互联网上引发愤怒和批评,但现在该产品已重新上市。这款售价19美元的抛光布,可用于苹果公司的任何产品。去年10月该产品刚互联网政务服务助力一流软环境建设来源光明日报习近平总书记在全国网络安全和信息化工作会议上强调,要运用信息化手段推进政务公开党务公开,加快推进电子政务,构建全流程一体化在线服务平台,更好解决企业和群众反映强烈的办事国家广电总局开展短视频专项治理取得实效36氪获悉,据国家广播电视总局微信公众号,国家广播电视总局自去年10月以来,按照中央文娱领域综合治理工作的精神,持续督导抖音快手等10多家用户规模大应用软件使用频率高的短视频平台,活着,就单单为了活着本身活着欢迎关注公众号夜半夏曲这两天看到一个新闻,腾讯游戏开发大神毛星云意外离世。我起初看到这个新闻,以为又是一个过劳死的案例,毕竟互联网大厂996福报的言论还不时回响在耳畔,互联网大厂们新手怎么学好编程?现在IT行业越来越火热,想要学习编程的人越来越多。跨界转行是大多数人面临的问题,不只是编程,其他行业也是如此。学会计转行做编辑学土木工程转行做电子学计算机转行做了编辑学机械转行做程如何在算法岗位脱颖而出?作为一个从业几年,并且做过几年面试官的算法工程师来说,认为最主要的任务还是定义问题和解决问题,所以成为一个合格的算法工程师要求就是不仅有考察建模的能力还要有模型优化的能力。在面向业5G手机选购指南价格从1199到2999,你会选择哪部手机?5G网络的出现,代表着数据连接和传输技术又向前迈进了一步,因此,支持5G连接的智能手机也比其它4G手机更受欢迎。如果你正考虑买5G手机,而且预算在1000到3000之间,那么请继续200元内的好耳机不少,论音质和综合性能脱颖而出的非它莫属如果你说你想买人生中的第一副HIFI耳机,我想你极大可能会花上八百上千,并且从此可能入烧。如果你说你想买一副所谓的HiFi耳机听听歌,我想你的预算也就三百块钱左右,总之不会超过五百低音炮音箱应该如何配置声拓电子音爵士低音炮音箱应该如何配置声拓电子音爵士低音炮音箱也是一种使用于多种场景的音箱,那么低音炮音箱如何配置呢?第一,看场合。使用场合不一样,配置的要求也不一样。比如,作为剧院是要求配置超低有效省电的客厅空调,使用舒适又安心客厅里的空调对于很多人来说都不是非常重要的家电,因为大家总是觉得客厅里的空调比较大,这样容易浪费电,也会给家庭增加更多的开支。其实这个时候我们可以选择新一级能效的空调,不仅能够有效