当前位置: 首页 > news >正文

Scala编程(第四版)

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方法前,上述隐式转换就会被应用

http://www.lryc.cn/news/29128.html

相关文章:

  • aws apigateway 基础概念和入门示例
  • 2023年“中银杯”安徽省职业院校技能大赛网络安全A模块全过程解析
  • 【Python入门第二十四天】Python 迭代器
  • Qt扫盲-CMake 使用概述
  • minGW-w64配置途径
  • 程序、进程、线程的基本概念、信号量的PV操作、前趋图的PV操作
  • 设计测试用例
  • CSS 选择器以及CSS常用属性
  • 测试概念及模型
  • 王道计算机组成原理课代表 - 考研计算机 第六章 总线 究极精华总结笔记
  • 【C++升级之路】第八篇:string类
  • mysql性能优化_原理_课程大纲
  • 项目管理报告工具的功能
  • centos8上安装hbase
  • linux 进程及调度基础知识
  • Python计算分类问题的评价指标(准确率、精确度、召回率和F1值,Kappa指标)
  • 51单片机LCD1602的使用
  • [深入理解SSD系列综述 1.5] SSD固态硬盘参数图文解析_选购固态硬盘就像买衣服?
  • zio1升级到zio2踩坑和总结
  • 【算法题】1834. 单线程 CPU
  • Vue学习[2023]
  • 【Redis】Redis分片集群
  • 【Android笔记81】Android之RxJava的介绍及其使用
  • Pr 定格拍照动画
  • 放弃node-sass,启用sass
  • 力扣旋转字符串
  • Java 代码组织机制
  • 【剧前爆米花--爪哇岛寻宝】MySQL中索引和事务
  • C++ 线程库
  • python字典和集合——笔记