scala基础
下载Scala: http://www.scala-lang.org/download/
数值类型:Byte,Short,Int,Long,Float,Double
字符类型和字符串类型:Char,String
Unit类型
Nothing类型
自定义函数:
def 函数名称(参数列表:参数类型):返回值类型={
//函数体
}
返回值类型可忽略
Trait像拥有部分实现的接口,它提供一个介于单一继承和多重继承的中间地带,可以在其它类中混入它们,这样就可以用一组特性对类进行增强
包可以包含类、对象和特质,但不能包含函数或者变量的定义。很不幸,这是Java虚拟机的局限
把工具函数或者常量添加到包而不是某个Utils对象,这是更加合理的做法
将函数作为变量的值(值函数) 在Scala中,可以将一个函数作为另一个函数的参数
Scala的闭包:就是函数的嵌套,即:在一个函数定义中,包含另外一个函数的定义
柯里化:Currying
柯里化函数(Curried Function)是把具有多个参数的函数转化为一条函数链,每个节点上是单一参数
def add(x: Int, y: Int) = x + y
def add(x: Int)(y: Int) = x + y //Scala柯里化的语法
map:在列表中的每个元素上计算一个函数,并且返回一个包含相同数目元素的列表
foreach: foreach和map相似,只不过它没有返回值,foreach只要是为了对参数进行作用
filter: 移除任何使得传入的函数返回false的元素。返回Boolean类型的函数一般都称为断言函数
zip: zip把两个列表的元素合成一个由元素对组成的列表里
partition: partition根据断言函数的返回值对列表进行拆分
find: find返回集合里第一个匹配断言函数的元素
flattern: flatten可以把嵌套的结构展开
flatMap: flatMap是一个常用的combinator,它结合了map和flatten的功能
不可变列表(List) 可变列表(LinkedList)
常用的序列:Vator、Range
Vector是ArrayBuffer的不可变版本,是一个带下标的序列
Range表示一个整数序列
使用implicit申明的函数参数叫做隐式参数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统