15 个最常问的 Swift 面试问题及答案
以下是 Swift 面试问题和答案,适合新手和经验丰富的 Swift 开发人员应聘者,以帮助他们获得理想的工作。
1)解释什么是 Swift 编程语言?
Swift 是一种用于创建 iOS 和 OS X 应用程序的编程语言和系统。它是一种针对 Cocoa 和 Cocoa Touch 的创新编程语言。
2)解释一下如何在 Swift 语言中定义变量?
变量和常量必须在使用前声明。使用 let 关键字声明常量,使用 var 关键字声明变量。变量和字典都使用括号描述。例如,Var Guru99 = “This is Guru99” Let ksomeconstant = 30
3)swift中“?”的含义是什么?
如果声明了属性,问号会使该属性成为可选属性。如果属性没有值,“?”有助于避免运行时错误。
4)请提及 Swift 编程的特点是什么?
- 它消除了所有不安全的代码
- 变量总是在使用前初始化
- 检查数组和整数是否溢出
- 内存是自动管理的
- 在条件编程中,Swift 不使用“if”语句,而是使用“switch”函数
5) 请说出 Swift 和“Objective-C”语言之间的区别?
“C” 和 “Swift” 语言之间的区别在于
Swift | Objective-C的 |
|
|
6)请提及 Swift 有哪些类型的整数?
Swift 提供 8、16、32 和 64 位形式的无符号和有符号整数。与 C 类似,这些整数遵循命名约定。例如,无符号整数用类型 UInt8 表示,而 32 位有符号整数用类型 Int32 表示。
7) 请提及什么是浮点数以及 Swift 中浮点数的类型有哪些?
浮点数是带有小数部分的数字,例如 3.25169 和 -238.21。浮点类型可以表示比整数类型更广泛的值。有两种有符号浮点数
- 双: 它表示一个 64 位浮点数,用于浮点值必须非常大的情况
- 漂浮: 它代表一个 32 位浮点数,当浮点值不需要 64 位精度时使用它
8)解释如何在 swift 中编写多行注释?
多行注释可以写成斜杠加星号(/*),以星号加斜杠(*/)结尾。
9)什么是 de-initializer 以及它在 Swift 中如何编写?
在类实例被解除分配之前立即声明一个反初始化器。你可以用 deinit 关键字来编写反初始化器。反初始化器不带任何括号,也不接受任何参数。它写成如下形式:
deinit { // perform the deinitialization }
10)请提及 Swift 中有哪些集合类型?
在 Swift 中,集合类型有两种:数组和字典
- 阵: 你可以创建单一类型的数组,也可以创建多种类型的数组。Swift 通常更喜欢前者
单一类型数组的示例是,
Var cardName : [String] = [ "Robert" , "Lisa" , "Kevin"] // Swift can infer [String] so we can also write it as: Var cardNames = [ "Robert", "Lisa", "Kevin"] // inferred as [String]
要添加数组,您需要使用下标 println(CardNames[0])
- 字典: 它类似于其他编程语言中的哈希表。字典使您可以存储键值对,并通过提供键来访问值
var cards = [ "Robert": 22, "Lisa" : 24, and "Kevin": 26]
11) 列出 Swift 中使用的控制转移语句有哪些?
Swift 中使用的控制转移语句包括
- 继续
- 午休
- 失败
- 回程
12)解释什么是可选链接?
可选链式调用是查询和调用属性的过程。多个查询可以链接在一起,如果链中的任何链接为 nil,则整个链式调用失败。
13) Swift 中如何定义基类?
在 Swift 中,类不会从基类继承,并且您定义的未指定其超类的类会自动成为基类。
14)解释什么是惰性存储属性以及它何时有用?
惰性存储属性用于在第一次使用之前不计算初始值的属性。您可以通过在声明前写入 lazy 修饰符来声明惰性存储属性。当属性的初始值依赖于值未知的外部因素时,惰性属性非常有用。
15)请提及 Swift 中 Switch 的特点是什么?
- 它支持任何类型的数据,不仅可以同步,还可以检查相等性
- 当 switch 中匹配到某个 case 时,程序会从该 switch case 退出,不再继续检查下一个 case。因此,你不需要在 case 末尾明确跳出 switch
- Switch 语句必须是详尽的,这意味着你必须涵盖变量的所有可能值
- switch 语句中没有 fallthrough,因此不需要 break
这些面试问题也会对你的口试有帮助
“Swift 是一种用于在 iOS 和 OS X 中创建 Web 应用程序的编程语言和系统”
好吧,你可能让很多人搞砸了他们的面试。干得好。
错误已修复!感谢您告知我们
switch 语句中没有“fallthrough”吗?
fallthrough 可用
是的,可用
问题 3 – Swift 的部署方式并非如此。Swift 的部署方式是上传到 Apple 的网站。这是一个完整的过程。它与 JAR 或 Tomcat 无关。
错误已修复!
此外,Swift 确实有 if 语句。它不是代替 if 语句的 switch 语句。它是对 if 语句的补充。
虽然确实没有隐式的失败,但可以明确地编程这种行为。
这行是什么意思“在 Objective C 中,你必须将变量声明为 NSString,将常量声明为 int”
多谢,伙计。
请验证您的答案。有些甚至与 iOS 无关
你能发一下 UI 面试问题吗?提前谢谢
这一行是什么意思:- 在 Objective C 中,变量被声明为“,常量被声明为“。
邮件标题中的“状态:可删除”是什么意思
请提及 Swift 和“Objective-C”语言有什么区别?
“C” 和 “Swift” 语言之间的区别在于
你应该澄清你的答案,你区分的是 Objective-C 和 Swift,而不是 C 和 Swift。
我明天要面试,这能帮助我通过面试吗?或者我还需要关注其他页面?如果我需要,请给我一些建议