这直接来自Swift开发者指南。
在Swift中,有两种类型:命名类型和复合类型。命名类型是在定义时可以赋予特定名称的类型。命名类型包括类,结构,枚举和协议。例如,名为MyClass的用户定义类的实例具有MyClass类型。除了用户定义的命名类型之外,Swift标准库还定义了许多常用的命名类型,包括表示数组,字典和可选值的类型。 .... 复合类型是一种没有名称的类型,在Swift语言本身中定义。有两种复合类型:函数类型和元组类型。
函数也有名称,为什么函数被认为是复合类型而不是命名类型?
答案 0 :(得分:3)
函数同时具有名称和类型。函数的名称仅表示该函数的名称;它不表示该函数的类型。
事实上,函数的名称和类型是相互独立的:
以下是具有相同名称和不同类型的两个函数的示例:
func one(x: Double, y: Double) -> Bool {
return true
}
func one(x: Double) -> Bool {
return true
}
第一个函数one
的复合类型是“带Double
和Double
的函数,返回Bool
”,而第二个函数的类型函数one
是“一个Double
并返回Bool
”的函数。
以下是两个相同类型但具有不同名称的函数的示例:
func one(x: Double) -> Bool {
return true
}
func two(x: Double) -> Bool {
return false
}
两种函数的复合类型是“一个Double
并返回Bool
”的函数。函数one
和two
都是该复合类型的实例。
答案 1 :(得分:-1)
函数不是类型,这就是函数不被视为复合类型的原因。这也是函数不在列表中的原因。
类型是类,枚举等。函数接近语言,而类等是面向对象的工作方式。