IOS面试题——Swift 泛型,关联类型,协议类型,不透明类型(6)

一 面试题汇总

  1. 泛型有什么作用?类型参数化
  2. 什么是关联类型?有什么作用?给协议中用到的类型定义一个占位名称
  3. 什么是协议类型,协议类型能否作为函数返回值?
  4. 泛型类型如何约束?
  5. 什么是不透明类型?some限制只能返回一种类型

二 面试题解答(仅供参考)

2.1 泛型有什么作用?类型参数化

1
泛型通过类型参数化,使得代码更加通用、灵活和可重用。

2.2 什么是关联类型?有什么作用?给协议中用到的类型定义一个占位名称

1
2
3
关联类型是协议中的一种占位符类型,它允许协议定义时不指定具体类型,而是由遵循该协议的类型来确定实际的类型。
它使得协议更具灵活性和通用性,能够适应多种不同类型的数据。
使用关联类型可以提升代码的复用性,同时保持类型安全。

2.3 什么是协议类型,协议类型能否作为函数返回值?

1
2
3
协议类型是一种类型,表示所有符合该协议的类型。
协议类型可以作为函数的返回值,允许你返回任何符合该协议的类型实例。
使用协议类型时,可以避免类型固定,使代码更加灵活和通用。

2.4 泛型类型如何约束?

1
2
3
4
1.泛型类型约束用于限制泛型参数的类型,使其必须遵循某个协议或继承自某个类。
2.通过约束,泛型可以提供更加灵活和类型安全的代码,同时确保类型满足特定的要求。
3.约束可以通过 : 直接添加,也可以使用 where 进行更复杂的条件约束。
4.常见的约束方式包括:遵循协议、继承类、多个约束等。

2.5 什么是不透明类型?some限制只能返回一种类型

1
2
3
不透明类型(some 关键字)允许你在返回某个符合协议的类型时,不暴露具体的类型实现。
不透明类型提高了代码的灵活性和封装性,隐藏了实现细节,调用者只关心协议定义的行为。
与泛型不同,不透明类型不要求在调用时明确指定类型,而是由实现决定返回的具体类型。

三 参考

  • 简书—Swift 泛型,关联类型,协议类型,不透明类型