Skip to content

Latest commit

 

History

History
18 lines (14 loc) · 986 Bytes

alias.adoc

File metadata and controls

18 lines (14 loc) · 986 Bytes

Type Alias

Type alias 实际上并不是一种类型,而是一个能用来提高我们代码可读性的技巧:

type User = String
type Age = Int

val data:  Map[User, Age] =  Map.empty

使用这个技巧,现在 Map 的定义一下变得"合理"了。 如果我们只是使用了一个 String ⇒ Int 类型的 map,那么我们会降低代码的可读性。 在这里,我们可以继续使用原始类型(也许我们需要原始类型的性能等),但是使用 Type Alias *命名*它们,便于以后的读者理解这个类。

Note
注意,当你为一个类创建别名时,不会将伴生对象关联在一起。例如, 假设你定义了一个 case class Person(name: String) 和一个别名类型 User = Person。 调用 User("John") 会导致_错误_,因为 Person("John") 会隐式调用 Person 伴生对象的 apply 方法, 但是伴生对象在这种情况下没有被定义别名,所以 User("John") 就报错。