今天的内容如下 变量和数据类型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`方法。
相关推荐
编程岁月26 分钟前
java面试-0305-java线程调度方法?sleep()和wait()区别?凌晨一点的秃头猪31 分钟前
Python 常见 bug 总结和异常处理云知谷44 分钟前
【经典书籍】C++ Primer 第19章特殊工具与技术精华讲解liu****1 小时前
4.基础开发工具(一)文火冰糖的硅基工坊1 小时前
[人工智能-大模型-72]:模型层技术 - 模型训练六大步:①数据预处理 - 基本功能与对应的基本组成函数小龙报1 小时前
《C语言疑难点 --- 字符函数和字符串函数专题(上)》凭君语未可1 小时前
深度解析Java的多态特性csbysj20202 小时前
DTD 元素:XML 与 SGML 文档结构解析指南傻童:CPU2 小时前
C语言练习题极地星光2 小时前
协程:实战与系统集成(高级篇)