与其他静态类型编程语言一样,在 Scala 中,您可以在创建新变量时声明类型
val x: Int = 1
val y: Double = 1
在这些示例中,类型被显式声明为 Int
和 Double
。但是,在 Scala 中,您通常不必在定义值绑定时声明类型
val a = 1
val b = List(1, 2, 3)
val m = Map(1 -> "one", 2 -> "two")
当您这样做时,Scala 会推断类型,如下面的 REPL 交互所示
scala> val a = 1
val a: Int = 1
scala> val b = List(1, 2, 3)
val b: List[Int] = List(1, 2, 3)
scala> val m = Map(1 -> "one", 2 -> "two")
val m: Map[Int, String] = Map(1 -> one, 2 -> two)
事实上,大多数变量都是这样定义的,Scala 自动推断类型的功能使其感觉像动态类型语言。
本页的贡献者
内容
- 简介
- Scala 特性
- 为什么选择 Scala 3?
- Scala 尝鲜
- 你好,世界!
- REPL
- 变量和数据类型
- 控制结构
- 领域建模
- 方法
- 一等函数
- 单例对象
- 集合
- 上下文抽象
- 顶级定义
- 摘要
- 首次了解类型
- 字符串插值
- 控制结构
- 领域建模
- 工具
- OOP 建模
- FP 建模
- 方法
- 方法特性
- Scala 3 中的主要方法
- 摘要
- 函数
- 匿名函数
- 函数变量
- Eta 展开
- 高阶函数
- 编写自己的 map 方法
- 创建返回函数的方法
- 摘要
- 打包和导入
- Scala 集合
- 集合类型
- 集合方法
- 摘要
- 函数式编程
- 什么是函数式编程?
- 不可变值
- 纯函数
- 函数是值
- 函数式错误处理
- 摘要
- 类型和类型系统
- 推断类型
- 泛型
- 交集类型
- 并集类型
- 代数数据类型
- 协变
- 不透明类型
- 结构类型
- 依赖函数类型
- 其他类型
- 上下文抽象
- 扩展方法
- 上下文参数
- 上下文边界
- 给定导入
- 类型类
- 多重相等
- 隐式转换
- 摘要
- 并发
- Scala 工具
- 使用 sbt 构建和测试 Scala 项目
- 工作表
- 与 Java 交互
- 面向 Java 开发者的 Scala
- 面向 JavaScript 开发者的 Scala
- 面向 Python 开发者的 Scala
- 下一步