# scala_20260908 Scala 学习代码仓库,记录从 2026-09-08 开始的 Scala 学习过程。 本仓库的代码主要分为两部分: ```text chapter/ ↓ 线下课程学习代码 practise/ ↓ 使用 ChatGPT 辅助学习的练习代码 ``` 两部分代码虽然都属于 Scala 学习内容,但定位不同。 --- ## 一、目录说明 ### chapter —— 线下课程 `chapter` 用于保存**线下课程中的课堂代码**。 这里的代码以老师上课讲解的内容为准,主要目的是: * 记录课堂学习过程 * 保留老师的代码示例 * 对应课程章节 * 方便课后复习 * 保持与课堂进度一致 例如: ```text chapter1 ├── demo1 ├── demo2 ├── demo3 ├── demo4 └── exercises chapter2 └── demo1 ``` 随着线下课程推进,会继续增加: ```text chapter3 chapter4 chapter5 ... ``` 因此: > `chapter` 可以理解为“课堂笔记的代码版”。 --- ### practise —— ChatGPT 学习 `practise` 用于保存**通过 ChatGPT 辅助学习 Scala 时编写的代码**。 这部分内容不一定完全按照线下课程章节组织,而是更侧重: * 对知识点进行补充学习 * 针对某个知识点单独练习 * 根据自己的理解重新写代码 * 编写练习题 * 编写综合题 * 验证 Scala 的语法特性 * 对容易混淆的知识点进行实验 例如: ```text practise1 ├── demo ├── exercises └── comprehensive practise2 ├── demo ├── exercises └── comprehensive ``` 其中通常可以理解为: ```text demo ↓ 知识点示例 exercises ↓ 针对知识点的练习 comprehensive ↓ 综合多个知识点的练习 ``` 因此: > `practise` 可以理解为“自己练习和深入理解的代码区”。 --- ## 二、为什么要分成 chapter 和 practise 将两部分代码分开,可以避免课堂代码和自主练习相互混杂。 学习过程可以理解为: ```text Scala 学习 │ ┌──────────┴──────────┐ │ │ chapter practise │ │ 线下课程代码 ChatGPT辅助学习 │ │ 老师怎么讲就怎么写 自己理解 / 补充 / 练习 │ │ └──────────┬──────────┘ │ 最终掌握 ``` 其中: `chapter` 负责**跟着课程学习**。 `practise` 负责**把知识真正练会**。 --- ## 三、当前学习内容 目前已经开始学习 Scala 基础语法。 ### chapter 主要对应线下课程,目前包括: ```text Scala 基础语法 ├── 变量 ├── 数据类型 ├── 字符串 ├── 字符串插值 ├── 运算符 ├── 流程控制 └── 方法 / 函数 ``` --- ### practise 目前主要围绕已经学习的 Scala 基础知识进行练习: ```text 变量与常量 ↓ 数据类型 ↓ 字符串 ↓ 字符串插值 ↓ if 表达式 ↓ 方法 ↓ 函数 ↓ 函数参数 ↓ 函数返回值 ↓ 综合练习 ``` --- ## 四、学习方式 整个学习过程采用: ```text 线下课程 ↓ chapter ↓ 理解课堂知识 ↓ ChatGPT辅助学习 ↓ practise ↓ 独立练习 / 综合练习 ↓ 进一步理解 Scala ``` 其中 `chapter` 和 `practise` 并不是两个独立的课程,而是同一个学习过程中的两个部分。 --- ## 五、项目结构 ```text scala_20260908/ │ ├── pom.xml ├── README.md │ └── src/ └── main/ └── scala/ │ ├── chapter1/ │ ├── demo1/ │ ├── demo2/ │ ├── demo3/ │ ├── demo4/ │ └── exercises/ │ ├── chapter2/ │ └── demo1/ │ ├── practise1/ │ ├── demo/ │ ├── exercises/ │ └── comprehensive/ │ └── practise2/ ├── demo/ ├── exercises/ └── comprehensive/ ``` --- ## 六、代码组织原则 ### chapter 以**课程章节**为核心: ```text chapter1 chapter2 chapter3 ... ``` 尽量保持课堂代码的原始结构,不为了“代码漂亮”而过度修改。 这样做的主要目的是: > 能够回到对应章节,快速回忆老师当时讲了什么。 --- ### practise 以**学习和练习**为核心: ```text practise1 practise2 practise3 ... ``` 可以根据学习过程自由增加: ```text demo exercises comprehensive test experiment ``` 等目录。 这里允许出现为了理解某一个 Scala 特性而专门编写的小实验代码。 --- ## 七、环境 当前项目使用 Maven 管理。 主要环境: ```text JDK 8 Scala 2.11.12 Maven 3.x IDEA IntelliJ IDEA ``` 项目通过 `scala-maven-plugin` 编译 Scala 代码。 --- ## 八、运行代码 推荐使用 IntelliJ IDEA 打开项目。 找到需要运行的 `.scala` 文件,例如: ```scala object Demo { def main(args: Array[String]): Unit = { println("Hello Scala") } } ``` 直接运行: ```text Run 'Demo.main()' ``` 也可以使用 Maven: ```bash mvn clean compile ``` 运行指定 Scala 主类: ```bash mvn scala:run -DmainClass=chapter2.demo1.DemoMethod ``` 或者: ```bash mvn scala:run -DmainClass=practise2.demo.DemoFunction ``` --- ## 九、学习记录原则 这个仓库不追求一次性把 Scala 所有知识整理完整,而是随着学习过程持续更新。 因此: ```text chapter = 课程真实学习进度 practise = 自主学习与练习进度 ``` 以后学习到新的内容后,继续按照这个规则添加即可。 --- ## 十、后续学习方向 随着 Scala 学习深入,预计逐步涉及: ```text 基础语法 ↓ 流程控制 ↓ 方法与函数 ↓ 集合 ↓ 面向对象 ↓ Trait ↓ 继承 ↓ 函数式编程 ↓ 高阶函数 ↓ 隐式转换 ↓ Scala 集合操作 ↓ Spark / 大数据开发 ``` 最终希望通过: ```text 课堂学习 + ChatGPT辅助学习 + 大量练习 ``` 逐步建立完整的 Scala 编程能力。 --- ## License 个人 Scala 学习代码,仅用于学习、练习和知识整理。