共9道题,敏捷大拇指Swifthumb.com)上的各位Swift高手可以自测一下,答案需要回复可见,以免你“无意中”偷窥到了。

要是做完还不过瘾的话,请看这个淘帖:《Swift笔试面试题库宝典》。

道长的 Swift 面试题

9道 Swift 面试题,大家可以自测一下 - 敏捷大拇指 - 道长的 Swift 面试题





1、给一个数组,要求写一个函数,交换数组中的两个元素。

解答:

游客,如果您要查看本帖隐藏内容请回复




2、下面代码有什么问题?

public class Node {
  public var value: Int
  public var prev: Node?
  public var post: Node?

  public init(_ value: Int) {
    self.value = value
  }
}

解答:

游客,如果您要查看本帖隐藏内容请回复





3、实现一个函数,输入是任一整数,输出要返回输入的整数 + 2

解答:

游客,如果您要查看本帖隐藏内容请回复





4、精简以下代码

func divide(dividend: Double?, by divisor: Double?) -> Double? {
  if dividend == nil {
    return nil
  }  
  if divisor == nil {
    return nil
  }
  if divisor == 0 {
    return nil
  }  
  return dividend! / divisor!
}

解答:

游客,如果您要查看本帖隐藏内容请回复





5、以下函数会打印出什么?

var car = "Benz"
let closure = { [car] in
  print("I drive \(car)")
}
car = "Tesla"
closure()

解答:

游客,如果您要查看本帖隐藏内容请回复





6、以下代码会打印出什么?

protocol Pizzeria {
  func makePizza(_ ingredients: [String])
  func makeMargherita()
}

extension Pizzeria {
  func makeMargherita() {
    return makePizza(["tomato", "mozzarella"])
  }
}

struct Lombardis: Pizzeria {
  func makePizza(_ ingredients: [String]) {
    print(ingredients)
  }
  func makeMargherita() {
    return makePizza(["tomato", "basil", "mozzarella"])
  }
}

let lombardis1: Pizzeria = Lombardis()
let lombardis2: Lombardis = Lombardis()
lombardis1.makeMargherita()
lombardis2.makeMargherita()

答案:

游客,如果您要查看本帖隐藏内容请回复





7、Swift 中定义常量和 Objective-C 中定义常量有什么区别?

解答:

游客,如果您要查看本帖隐藏内容请回复





8、Swift 中 struct 和 class 什么区别?举个应用中的实例

解答:

游客,如果您要查看本帖隐藏内容请回复





9、Swift 到底是面向对象还是函数式的编程语言?

解答:

游客,如果您要查看本帖隐藏内容请回复



不知道敏捷大拇指Swifthumb.com)上的各位Swift高手自测的如何?

欢迎把自己的解答回帖出来交流切磋,毕竟我的解法也不完全对。

欢迎订阅淘帖专辑:《Swift笔试面试题库宝典

游客,如果您要查看本帖隐藏内容请回复