2021最新—Swift面试题

本文探讨了Swift与Objective-C的区别,包括静态与动态语言特性、面向协议编程、值类型与引用类型等。深入讲解了Swift的派发机制,包括静态派发、函数表派发和消息派发,并介绍了如何显式指定派发方式。同时,对比了Struct与Class的不同,以及Swift中常量、mutating、final和lazy关键字的用法,为iOS开发者准备面试提供了全面的知识点总结。
摘要由CSDN通过智能技术生成

#初级

  • String 与 NSString 的关系与区别
  • 怎么获取一个 String 的长度
  • 如何截取 String 的某段字符串
  • throws 和 rethrows 的用法与作用
  • try? 和 try!是什么意思
  • associatedtype 的作用
  • 什么时候使用 final
  • public 和 open 的区别
  • 声明一个只有一个参数没有返回值闭包的别名

高级

  • 一个 Sequence 的索引是不是一定从 0 开始?
  • 数组都实现了哪些协议
  • 如何自定义模式匹配
  • autoclosure 的作用
  • 编译选项 whole module optmization 优化了什么
  • 下面代码中 mutating 的作用是什么

一.Swift和OC的区别?

  • 1.swift是静态语言,有类型推断,OC是动态语言。
  • 2.swift面向协议编程,OC面向对象编程
  • 3.swift注重值类型,OC注重引用类型。
  • 4.swift支持泛型,OC只支持轻量泛型
  • 5.swift支持静态派发(效率高)、动态派发(函数表派发、消息派发)方式,OC支持动态派发(消息派发)方式。
  • 6.swift支持函数式编程
  • 7.swift的协议不仅可以被类实现,也可以被struct和enum实现
  • 8.swift有元组类型、支持运算符重载
  • 9.swift支持命名空间
  • 10.swift支持默认参数
  • 11.swift比o
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值