一切都是Scala中的一个对象
发布时间:2020-12-16 08:48:52 所属栏目:安全 来源:网络整理
导读:我是 Scala的新手并且听到很多东西都是Scala中的一个对象.我不知道的是“一切都是对象”的优势是什么?如果一切都不是对象,那么我不能做的事情是什么?欢迎举例.谢谢 解决方法 将“一切”作为对象的优点是,抽象中断的情况要少得多. 例如,方法不是Java中的对
我是
Scala的新手并且听到很多东西都是Scala中的一个对象.我不知道的是“一切都是对象”的优势是什么?如果一切都不是对象,那么我不能做的事情是什么?欢迎举例.谢谢
解决方法
将“一切”作为对象的优点是,抽象中断的情况要少得多.
例如,方法不是Java中的对象.所以,如果我有两个字符串,我可以 String s1 = "one"; String s2 = "two"; static String caps(String s) { return s.toUpperCase(); } caps(s1); // Works caps(s2); // Also works 因此,我们在制作大写字母的操作中抽象出了字符串标识.但是,如果我们想要抽象出操作的身份 – 也就是说,我们对一个字符串做了什么来回馈另一个字符串但是我们想抽象出细节是什么呢?现在我们陷入困境,因为方法不是Java中的对象. 在Scala中,方法可以转换为函数,即函数.例如: def stringop(s: String,f: String => String) = if (s.length > 0) f(s) else s stringop(s1,_.toUpperCase) stringop(s2,_.toLowerCase) 现在我们已经抽象出对非空字符串执行一些字符串转换的想法. 如果这就是我们需要做的事情,我们可以列出操作等等并传递它们. 还有其他不那么重要的情况(对象与类,原始对比而不是,值类等),但最重要的是折叠方法和对象之间的区别,以便传递和抽象功能就像传递一样简单围绕并抽象数据. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- angularjs – 将角度材料与twitter引导程序相结合,没有冲突
- 如何获得一个字符串在shell中的最后一个字符?
- angular4 动态表单
- Angular2 ngFor:我做错了什么?
- 读书笔记 <Bootstrap Yourself with Linux USB Stack>
- 需要裁剪调整大小?300000个文件.运行时间= 4天.如何加速我的
- angular中的ng-repeat-start和ng-repeat-end的用法介绍
- 模块化AngularJS应用程序:一个或多个AngularJS模块?
- angularjs – 在compiler_1中获取ERROR.StaticSymbolResolv
- class – Angular 2:要在所有组件中使用的函数