首页 > 其他分享 >每日总结

每日总结

时间:2024-02-05 21:22:42浏览次数:43  
标签:总结 函数 Scala 每日 Actor 线程 类型 语言

Scala 是 Scalable Language 的简写,是一门多范式的编程语言

联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于Funnel的工作开始设计Scala。

Funnel是把函数式编程思想和Petri网相结合的一种编程语言。

Odersky先前的工作是Generic Java和javac(Sun Java编译器)。Java平台的Scala于2003年底/2004年初发布。.NET平台的Scala发布于2004年6月。该语言第二个版本,v2.0,发布于2006年3月。

截至2009年9月,最新版本是版本2.7.6 。Scala 2.8预计的特性包括重写的Scala类库(Scala collections library)、方法的命名参数和默认参数、包对象(package object),以及Continuation。

2009年4月,Twitter宣布他们已经把大部分后端程序从Ruby迁移到Scala,其余部分也打算要迁移。此外, Wattzon已经公开宣称,其整个平台都已经是基于Scala基础设施编写的。


Scala 特性

面向对象特性

Scala是一种纯面向对象的语言,每个值都是对象。对象的数据类型以及行为由类和特质描述。

类抽象机制的扩展有两种途径:一种途径是子类继承,另一种途径是灵活的混入机制。这两种途径能避免多重继承的种种问题。

函数式编程

Scala也是一种函数式语言,其函数也能当成值来使用。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化。Scala的case class及其内置的模式匹配相当于函数式编程语言中常用的代数类型。

更进一步,程序员可以利用Scala的模式匹配,编写类似正则表达式的代码处理XML数据。

静态类型

Scala具备类型系统,通过编译时检查,保证代码的安全性和一致性。类型系统具体支持以下特性:

  • 泛型类
  • 协变和逆变
  • 标注
  • 类型参数的上下限约束
  • 把类别和抽象类型作为对象成员
  • 复合类型
  • 引用自己时显式指定类型
  • 视图
  • 多态方法

扩展性

Scala的设计秉承一项事实,即在实践中,某个领域特定的应用程序开发往往需要特定于该领域的语言扩展。Scala提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构:

  • 任何方法可用作前缀或后缀操作符
  • 可以根据预期类型自动构造闭包。

并发性

Scala使用Actor作为其并发模型,Actor是类似线程的实体,通过邮箱发收消息。Actor可以复用线程,因此可以在程序中可以使用数百万个Actor,而线程只能创建数千个。在2.10之后的版本中,使用Akka作为其默认Actor实现。


谁使用了 Scala

  • 2009年4月,Twitter宣布他们已经把大部分后端程序从Ruby迁移到Scala,其余部分也打算要迁移。
  • 此外,Wattzon已经公开宣称,其整个平台都已经是基于Scala基础设施编写的。
  • 瑞银集团把Scala用于一般产品中。
  • Coursera把Scala作为服务器语言使用。

Scala Web 框架

以下列出了两个目前比较流行的 Scala 的 Web应用框架:

标签:总结,函数,Scala,每日,Actor,线程,类型,语言
From: https://www.cnblogs.com/baijingyun/p/18008850

相关文章

  • 2024.2.5寒假每日总结27
    LeetCode跳跃游戏VI1696.跳跃游戏VI-力扣(LeetCode)题目描述给你一个下标从0开始的整数数组nums和一个整数k。一开始你在下标0处。每一步,你最多可以往前跳k步,但你不能跳出数组的边界。也就是说,你可以从下标i跳到[i+1,min(n-1,i+k)]包含两个端点的任......
  • 代码随想录算法训练营第十三天|239. 滑动窗口最大值 347.前 K 个高频元素 总结
    239.滑动窗口最大值题目链接:239.滑动窗口最大值-力扣(LeetCode)给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值 。思路:首先在不考虑......
  • UML类图及各种线代表的关系含义总结
    原文:UML类图及各种线代表的关系含义总结_uml各种线条代表什么意义,请用uml图例详细说明-CSDN博客一、认识类图类图可以说是UML里使用频率最高的,类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确......
  • 每日导数51
    利用极限找点定义函数满足\(f(x_0)=f^{\prime}(x_0)\)的实数\(x_0\)为函数\(y=f(x)\)的然点,已知\(f(x)=(\lnx+a)e^{-x}\)(1)证明:\(\foralla\in\mathbb{R}\),函数\(y=f(x)\)必有然点(2)设\(x_0\)为\(y=f(x)\)的然点,判断函数\(g(x)=f(x)-f(x_0)\)的零点个数并证明解(1)\(f^{\p......
  • 一款后台管理框架的年终总结
    这是一篇关于Fantastic-admin这款后台管理框架的年终总结。不过与其说是年终总结,更像是一场回顾,看看这一年Fantastic-admin都做了哪些与众不同的功能,也给大家提供一些创造思路。或许有些功能,你可以在自己的项目里实现。以下按commit时间顺序汇总:可阅读时间这是一个将......
  • 《程序是怎样跑起来的》第二章总结
    在学JAVA的时候网课上提到过左移右移,不过并没有作为重点来讲,只是大概地说了一下是什么含义。刚看第二章作者提出的六个问题就有四个难住了我。比如一串二进制数左移两位会变成原数的几倍、还有补码形式表示的八进制如何用二进制表示等等,这些问题一点都不会。不过看完答案和作者给......
  • 《程序是怎样跑起来的》第一章总结
    第一章的主要内容就是对CPU进行了详细的解释.CPU相当于计算机的大脑,它有数百万至数一个晶体管构成.CPU的内部主要有控制器,运算器,寄存器和时钟构成.如寄存器可用来暂存指令,数据等处理对象可以将其看作是内存的一种,控制器负责把内存上的指令,数据等读人寄存器,并......
  • SM学习总结
    图的应用(1)---updatebylgj   拓扑序列 测试1  拓扑序列练习  测试2 拓扑排序-cn是大帅哥886-博客园(cnblogs.com) 断网测试1 断网测试1-拓扑排序-TimelineG(拓扑排序)-cn是大帅哥886-博客园(cnblogs.com) priority_queue简介与用法......
  • 一句话总结Docker与K8S的关系
    一句话总结:Docker只是容器的一种,它面向的是单体,K8S可以管理多种容器,它面向的是集群,Docker可以作为一种容器方案被K8S管理。下文继续具体介绍。1、容器的核心概念介绍这几个核心概念:OCI、CR、Runc、Containerd、CRI。1.1、容器运行规范容器运行规范OCI(OpenContainerInitiat......
  • 2024.1.21 ~ 2024.2.2 集训总结
    集训大纲Week1:图论:拓扑排序、欧拉回路、二分图、最小生成树数据结构:并查集、堆、单调队列week2:图论:连通性数据结构:线段树图论拓扑排序将DAG上的点以关联性进行排序,得到一个有关联的枚举顺序。有了这种特别的枚举顺序,使得在DAG上DP的转移过程更加合理且有......