Swift面试题

1、用for-in 写出一个0-9索引的循环。

for index in 0...9{
  print("index = \(index)")
  }

2、现有一个 Int数组array,请最简约的写法用 map 方法给每个成员自加1然后生成新的数组

let arr = [1,2,3]
let arr2 = arr.map ({
 $0 + 1
 })
 print("arr2的结果是\(arr2)")
 arr2的结果是[2, 3, 4]

3、类与结构(应该是结构体?)最突出的区别特性是? 

类是属于面向对象编程,结构体属于面向协议的编程

Swift 中类和结构体有很多共同点。共同处在于:

  • 定义属性用于存储值
  • 定义方法用于提供功能
  • 定义附属脚本用于访问值
  • 定义构造器用于生成初始化值
  • 通过扩展以增加默认实现的功能
  • 符合协议以对某类提供标准功能

与结构体相比,类还有如下的附加功能:

  • 继承允许一个类继承另一个类的特征
  • 类型转换允许在运行时检查和解释一个类实例的类型
  • 解构器允许一个类实例释放任何其所被分配的资源
  • 引用计数允许对一个类的多次引用

4、在 swift调用c 函数最少需要哪几个文件?

a是建立桥接文件建立swift和c的联系(点击File–>New File,弹出“Choose a template for your new file”对话框,选择OS X下的source,选中Objective-C File,填上文件名(OCFile.m),点击”Next”后会弹出”Would you like to configure an Objective-C bridging header? “,选择Yes,创建 工程名-Bridging-Header.h文件)

b 给工程建立一个C语言文件


5、swift函数参数设置成引用传递类型的标签是?

inout

6、CChar实质是哪个类型

 CChar = Int8

7、写出比下方更有效率的算法?

var a = 3
for _ in 0..<100 {
    a = a * 2
}

let res = a * Int(pow(Double(2), Double(100)))


8、UInt8、UInt16、UInt32、UInt64的最大值分别是?

min 永远都是0 max = 2N次幂-1

let minValueUInt8  = UInt8.min = 0

let maxValueUInt8  = UInt8.max = 255


let maiValueUInt16 = UInt16.min = 0

let maxValueUInt16 = UInt16.max = 65535


let maiValueUInt32 = UInt32.min = 0

let maxValueUInt32 = UInt32.max = 4294967295



let maiValueUInt64 = UInt64.min = 0

let maxValueUInt64 = UInt64.max = 18446744073709551615

想要了解更多请关注公众号
Swift面试题_第1张图片

你可能感兴趣的:(面试题)