What is Scala
The Scala Programming Language
Scala编程语言
Scala combines object-oriented and functional programming in one concise, high-level language. Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.
Scala 是 Scalable Language 的简写,是一门多范式的编程语言
联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于Funnel的工作开始设计Scala。
Funnel是把函数式编程思想和Petri网相结合的一种编程语言。
Scala将面向对象和函数式编程结合在一种简洁的高级语言中。Scala的静态类型有助于避免复杂应用程序中的bug,它的JVM和JavaScript运行时允许您构建高性能系统,并可以轻松访问庞大的库生态系统。
然后scala是一种怎么样的语言,简短的说,它是面向函数的。具有什么样的优点,
1. 兼容性(极度重用java,学过java的很容易上手scala)
2. 简洁(实现同样功能,代码是java的一半)
3. 高层级(将java抽象封装得更好)
4. 集大成者(当然,用不好也可能变成四不像)
它可以极大化简化你的代码,其次里面有一个功能很强大,叫做隐式转换,在正式生效你写的代码之前,可以通过它,给原来的Scala 的方法丰富和增加新的功能,不需要你再去显示定义。无形之中你就有了更多的api可以调用。这是我认为它强大的地方。
缺点可能是成也萧何,败也萧何。
因为太灵活,所以学习起来,比Java难度大一些,门槛稍微高一点儿,这是我认为不足。
总之,希望上面那篇希望可以帮到你快速入门Scala,然后迅速开始Kafka、Spark、Flink的开发。
What is Scala相关推荐
- hadoop,spark,scala,flink 大数据分布式系统汇总
20220314 https://shimo.im/docs/YcPW8YY3T6dT86dV/read 尚硅谷大数据文档资料 iceberg相当于对hive的读写,starrocks相当于对mysq ...
- 2021年大数据常用语言Scala(三十八):scala高级用法 隐式转换和隐式参数
目录 隐式转换和隐式参数 隐式转换 自动导入隐式转换方法 隐式转换的时机 隐式参数 隐式转换和隐式参数 隐式转换和隐式参数是scala非常有特色的功能,也是Java等其他编程语言没有的功能.我们可以很 ...
- 2021年大数据常用语言Scala(三十七):scala高级用法 高阶函数用法
目录 高阶函数用法 作为值的函数 匿名函数 柯里化(多参数列表) 闭包 高阶函数用法 Scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是"头等公民",它和Int. ...
- 2021年大数据常用语言Scala(三十六):scala高级用法 泛型
目录 泛型 定义一个泛型方法 定义一个泛型类 上下界 协变.逆变.非变 非变 协变 逆变 泛型 scala和Java一样,类和特质.方法都可以支持泛型.我们在学习集合的时候,一般都会涉及到泛型. sc ...
- 2021年大数据常用语言Scala(三十五):scala高级用法 提取器(Extractor)
目录 提取器(Extractor) 定义提取器 提取器(Extractor) 我们之前已经使用过scala中非常强大的模式匹配功能了,通过模式匹配,我们可以快速匹配样例类中的成员变量.例如: // ...
- 2021年大数据常用语言Scala(三十四):scala高级用法 异常处理
目录 异常处理 捕获异常 抛出异常 异常处理 Scala中 无需在方法上声明异常 来看看下面一段代码. def main(args: Array[String]): Unit = {val i = 1 ...
- 2021年大数据常用语言Scala(三十一):scala面向对象 特质(trait)
目录 特质(trait) 作为接口使用 定义具体的方法 定义具体方法和抽象方法 定义具体的字段和抽象的字段 实例对象混入trait trait调用链 trait的构造机制 trait继承class 特 ...
- 2021年大数据常用语言Scala(二十九):scala面向对象 单例对象
目录 单例对象 定义object - 掌握 伴生对象 - 掌握 apply方法 - 掌握 main方法 单例对象 Scala中没有static关键字,但是它支持静态 如果要定义静态的东西,统统定义到o ...
- 2021年大数据常用语言Scala(二十八):scala面向对象 MAVEN依赖和类
目录 scala面向对象 MAVEN依赖 类 - 掌握 创建类和对象 - 掌握 getter/setter - 了解 类的构造器 - 掌握 scala面向对象 MAVEN依赖 <?xml ver ...
- 2021年大数据常用语言Scala(二十七):函数式编程 聚合操作
目录 聚合操作 聚合 reduce 定义 案例 折叠 fold 定义 案例 聚合操作 聚合操作,可以将一个列表中的数据合并为一个.这种操作经常用来统计分析中 聚合 reduce reduce表示 ...
最新文章
- Effect of Switchovers, Failovers, and Control File Creation on Backups
- 机器学习有很多关于核函数的说法,核函数的定义和作用是什么?
- mysql 重装问题
- git 忽略文件 .gitignore 以及规则
- 【Qt】QModbusTcpClient类
- Java 中的某些方法为什么要求传入一个 Class 对象
- vue设置多选框默认勾选_Angular/Vue多复选框勾选问题
- 【Win10 应用开发】自定义应用标题栏
- 神州泰岳2050万元收买并增资奇点国际
- HTML DOM文档对象查找元素的方法
- Dalvik虚拟机的内存管理
- ajax post data 获取不到数据,注意content-type的设置post/get
- 网站日志分析工具:WebLog Expert Lite
- Python利用os.walk遍历文件夹
- AOF -- Redis 设计与实现
- ChIP-seq数据处理流程(附赠长达5小时的视频指导)
- HFS远程命令执行漏洞入侵抓鸡黑阔服务器
- zynq-7000系列基于zynq-zed的vivado初步设计之使用jtag-uart(MDM)
- [《所遇随心》偶感小记]2012年8月28日
- 从今天起我想要热爱生活
热门文章
- 随想录二刷Day15——二叉树
- tkinter实现带背景图片的登录窗口
- php去除正斜杠,php怎么去掉斜线
- 神鱼:未来PoS是更好的选择,Staking和Defi可能会形成博弈
- 针对不同消费行为,如何开展个性化会员管理?
- 光电特性实验台,QY-GD01
- Java NIO学习笔记三------Chanel的四种实现篇
- Magical爬虫の学习(1)
- 分享我自己的导航网站bituplink导航 (附GitHub开源代码项目OneHtmlNav)
- 联想 Yoga 14s 2021 (Intel) 安装 ubuntu