今天的内容如下 变量和数据类型1. 注释 - 单行注释(`//`)、多行注释(`/ /`)、2. 变量和常量 - 变量用`var`声明,可修改;常量用`val`声明,不可修改。 - 类型推导:声明时可省略类型,由编译器推断。3. 标识符命名规则 - 支持字母、数字、下划线,操作符开头需用反引号包裹。4. 字符串输出 - 支持拼接(`+`)、格式化(`printf`)、插值(`s"$name"`)。 - 多行字符串用`"""`包裹,`stripMargin`方法对齐。5. 数据类型 - 分为值类型(`AnyVal`)和引用类型(`AnyRef`)。 - 包括整型、浮点型、字符型、布尔型等,支持隐式转换。 - 特殊类型:`Unit`(类似`void`)、`Null`、`Nothing`。6. 类型转换 - 自动转换:低精度向高精度转换。 - 强制转换:使用`toInt`、`toDouble`等方法。 第3章 运算符1. 算术运算符 - 包括`+`、`-`、` `、`/`、`%`,支持字符串拼接。2. 关系运算符 - 包括`==`、`!=`、`>`、`<`等,结果为布尔值。3. 逻辑运算符 - `&&`(与)、`||`(或)、`!`(非)。4. 赋值运算符 - `=`、`+=`、`-=`等,无`++`和`--`。5. 位运算符 - `&`、`|`、`^`、`~`、`<<`、`>>`等。6. 运算符本质 - 所有运算符均为方法调用,如`a + b`等价于`a.+(b)`。 流程控制1. 分支控制 - `if-else`:支持单分支、双分支、多分支。 - 返回值:`if-else`表达式有返回值,类型为所有分支的公共父类。2. 循环控制 - `for`循环:支持范围(`to`、`until`)、守卫(`if`)、步长(`by`)、嵌套循环。 - `while`和`do-while`:与Java类似。 - 中断循环:使用`Breaks`工具类或异常处理。3. 模式匹配 - `match-case`:类似Java的`switch`,但更强大,支持类型匹配、守卫条件等。函数1. 函数基础 - 定义:`def 函数名(参数列表): 返回值类型 = { 函数体 }`。 - 函数与方法区别:方法是类中的函数,函数可独立存在。2. 高阶函数 - 函数可作为参数传递、返回值返回,或赋值给变量。 - 匿名函数:`(参数) => { 函数体 }`,支持简化写法(如`_`占位符)。3. 闭包与柯里化 - 闭包:函数捕获外部变量。 - 柯里化:将多参数函数转换为单参数函数链。4. 控制抽象 - 名调用(`=>`):延迟计算,传递代码块而非值。 面向对象1. 类与对象 - 类定义:`class 类名 { 属性和方法 }`。 - 对象:单例对象,通过`object`定义。2. 构造器 - 主构造器:类定义时直接声明参数。 - 辅助构造器:`def this(参数)`,需调用主构造器。3. 继承与多态 - 单继承,`extends`关键字,支持方法重写(`override`)。 - 动态绑定:方法与属性均为动态绑定。4. 特质(Trait) - 类似接口,可包含抽象和具体方法。 - 混入(`with`):一个类可混入多个特质。 集合1. 集合简介 - 分为序列(`Seq`)、集(`Set`)、映射(`Map`),有可变和不可变版本。2. 数组 - 不可变数组:`Array`,长度固定。 - 可变数组:`ArrayBuffer`,支持动态增减元素。3. 列表 - 不可变列表:`List`,支持头部操作和递归结构。 - 可变列表:`ListBuffer`。4. Set与Map - 无序、元素唯一,分可变和不可变版本。5. 集合操作 - 常用函数:`map`、`filter`、`reduce`、`fold`等。 - 并行集合:`par`方法实现多核并行计算。 模式匹配1. 基本语法 - `match-case`:匹配常量、类型、数组、列表、元组等。 - 模式守卫:通过`if`添加条件。2. 样例类 - 用于模式匹配,自动生成伴生对象和`apply`方法。
Scala内容
2025/4/3 10:06:37
来源:https://blog.csdn.net/2502_90677924/article/details/146899060
浏览:
次
关键词:Scala内容
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com
热文排行
最新新闻
- Scala内容
- WX小程序
- 实现一个实时聊天应用:用 Vue 3 和 WebSocket 构建多人在线聊天系统
- 浅述TSINGSEE青犀EasyCVR视频汇聚平台与海康安防平台的区别对比
- 2025年1月21日(驱动360度舵机)
- VsCode + Go + macOS 小白 demo运行
- 【算法day25】 最长有效括号——给你一个只包含 ‘(‘ 和 ‘)‘ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。
- html select下拉多选 修改yselect.js插件实现下拉多选,搜索,限制选中,默认回显等操作
- 吴恩达谈AI未来:Agentic Workflow、推理成本下降与开源的优势
- Node.js中HTTPS模块应用详解
推荐新闻
- Scala内容
- WX小程序
- 实现一个实时聊天应用:用 Vue 3 和 WebSocket 构建多人在线聊天系统
- 浅述TSINGSEE青犀EasyCVR视频汇聚平台与海康安防平台的区别对比
- 2025年1月21日(驱动360度舵机)
- VsCode + Go + macOS 小白 demo运行
- 【算法day25】 最长有效括号——给你一个只包含 ‘(‘ 和 ‘)‘ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。
- html select下拉多选 修改yselect.js插件实现下拉多选,搜索,限制选中,默认回显等操作
- 吴恩达谈AI未来:Agentic Workflow、推理成本下降与开源的优势
- Node.js中HTTPS模块应用详解