Scala编程

  • 可伸缩的语言
    • 面向对象与函数式编程
    • Scala优势
      • Scala是兼容的

可伸缩的语言

1、适合构建将java组件组装在一起的脚本
2、用于编写可复用组件,并讲这些组件构建成大型框架

Scala是一门综合面向对象和函数式编程概念的静态类型编程语言

面向对象与函数式编程

面向对象

和java面向对象的区别:
java是不允许对象的值单独存在的,比如基础数据类型,并且java不允许以任何对象的成员形式存在的静态字段和静态方法
scala是纯面向对象的,1+2是Int类型的「+」函数

函数式编程

首先、函数式编程中,函数是一等值的,也就是说他和整数、字符串一样,可以作为参数,也可以返回
第二,函数式编程中,函数是不应该有副作用的,只有接收入参并返回结果两种方式和外部环境通信(scala不会强制要求)

Scala优势

Scala是兼容的

Scala程序会被编译成JVM字节码,运行期性能也和Java相当,Scala可以调用Java方法,访问Java字段,从Java继承,实现java接口等等。几乎所有Scala代码都重度使用Java类库
并且,Scala会对Java类进行「再包装」,比如Scala字符串支持.toInt()方法,但是java只能Integer.parseInt(str)。Scala对于这类由于高级类库设计和互操作性之间的矛盾产生问题,采用了隐式转换的方案解决,当类型没有正常匹配或者代码选中了java类型中不存在的成员时,Scala便会尝试隐式转换

在toInt()的事例中,scala会在Java的String类中找toInt()方法,但是JavaString类并没有这个党发,不过Scala会找到一个将Java的String转换成Scala的StringOps类的隐式转换,而StringOps中定义了这样一个方法(toInt),因此当执行真正toInt方法前,上述隐式转换就会被应用

Scala编程(第四版)相关推荐

  1. python编程第四版_清华编程教授强力推荐《Python编程》,指导你如何学习python

    Python编程真的那么容易吗?仅仅是看理论就可以学以致用吗? 今天我给你介绍的这本书,也许会让你开始改变这种想法,因为这本书上的练习和案例以及指导本身就足够学好Python了. 清华编程教授强力推荐 ...

  2. python软件下载安装百度网盘-【python编程+第四版】百度云下载 - 云盘精灵

    |- 用Python3带你从小白入门机器学习实战教程手册.pdf - 7.30 MB |- 人工智能Python实战代码 Python code for Artificial Intelligence ...

  3. python编程第四版_Python编程 第4版 影印版 上下册

    内容概要 本书是由Mark Lutz编写的<Python编程(影印版第4版)>.<Python编程(影印版第4版)>的内容包括: Python快速入门:搭建一个简单的例子,包括 ...

  4. perl语言编程 第四版_2020年,5 种 将死的编程语言!

    来源 | 码农网译者 | 小峰 曾几何时,几乎每个人都在使用Perl语言编程.但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲.至少我知道有这么个叫做"piecemea ...

  5. perl语言编程 第四版_2020年,5 种 将死的编程语言

    来源 | 码农网 译者 | 小峰 曾几何时,几乎每个人都在使用Perl语言编程.但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲.至少我知道有这么个叫做"pieceme ...

  6. c语言编程第四版李丽娟课程,C语言程序设计教程 第4版 普通高等教育“十一五”国家级规划教材 教学课件 李丽娟 C语言程序设计教程(第4版)_第4章_分支结构.pdf...

    C语言程序设计教程 (第4版) 第4章 分支结构 李丽娟 2013年2月 第4章 分支结构 本章主要内容 1. if语句的基本结构 2.if~else语句基本结构 3. if语句的嵌套结构 4. sw ...

  7. Scala 编程题四 继承

    1.题目如下 封装,定义setter和getter方法用于存值和取值 定义人类Person, (1)字段:身份证号idCard,姓名name,性别gender,年龄age,职业profession,联 ...

  8. python编程输入标准-《Python编程 第四版》 -第3章 脚本运行上下文

    本章重点内容: 1.当前工作路径 2.命令行参数 3.shell环境变量 4.标准流 接下来展开详细的说明: 1.当前工作路径 当前工作路径,英文简写"CWD" 当前工作路径是系统 ...

  9. perl语言编程 第四版_被称作“胶水语言”的PERL,在芯片设计和验证中可以这样使用...

    最近在做一个验证环境的自动化生成脚本,在写的过程中,随着对PERL认知程度的增加,越感到它的强大之处,今天我们来谈一谈这门语言. PERL(Practical Extration and Report ...

最新文章

  1. Android初级教程获取手机系统联系人信息
  2. Java 编程下 Eclipse 如何设置单行代码显示的最大宽度
  3. TensorFlow学习笔记(二十六)CNN的9大模型之LeNet5的原理讲解
  4. java是值传递还是引用传递_Java 到底是值传递还是引用传递?
  5. centos修改磁盘uuid_为什么MySQL用uuid做主键会被骂?
  6. 接口测试--自定义断言设置
  7. 【2019南昌邀请赛网络赛I:】Max Answer(st表+单调栈(新模版)+分析)
  8. mib节点 snmp trap_浅谈 Linux 系统中的 SNMP Trap
  9. 写给音响工程师的科普文章(二)——从模电角度去了解调音台话放
  10. 使用海康8700综合平台对ds-6908解码器进行解码上墙大概配置
  11. 从项目中由浅入深的学习vue,react,微信小程序和快应用【加薪必备】
  12. php微信上传临时素材,PHP实战:php微信开发之上传临时素材
  13. micro hdmi引脚定义义_臻实力芯定义:京东AMD笔记本电脑双11开门红
  14. 03_使用决策树预测隐形眼镜类型
  15. java编程 吃货联盟订餐系统
  16. 安卓手机刷机+刷机精灵
  17. Java I/O读取和解析.emp文件示例
  18. 第一讲:计算机七层参考模型
  19. IIS服务器无法播放MP4/FLV/3GP等媒体格式的问题
  20. c语言数字基带实验报告,数字基带传输实验实验报告.doc

热门文章

  1. 《Pytorch学习指南》- Dataset和Dataloader用法详解
  2. mac笔记本好用的快捷键汇总
  3. 换一种思路看function pointers指针函数)
  4. 关于安装loadrunner时因为.NET Framwork的问题解决
  5. 南京邮电大学C语言实验报告五
  6. Android(或者Java)通过HttpUrlConnection向SpringMVC请求数据(数据绑定)
  7. 清空文件上传文本框文件
  8. selenium ide assert
  9. 拖延症的克星——TaskPlan
  10. sublime PHP 插件