Swift面试题

一.卓同学的 Swift 面试题
答 《卓同学的 Swift 面试题》
答《卓同学的 Swift 面试题》上
答《卓同学的 Swift 面试题》下

4道过滤菜鸟的iOS面试题
答卓同学的iOS面试题

二.iOS萌新救助站一:简历要写几个项目

三.让 BAT 的 Offer 不再难拿

四.[iOS]关于面试,做一次整理吧(包含BAT面试题目)

五.道长的 Swift 面试题

六.Swift 面试题

七.知乎热门

八.2017年5月iOS招人心得(附面试题)
2017年iOS面试题总结

九.面试了 20 个初/中级 iOS 工程师之后(上)
面试了 20 个初/中级 iOS 工程师之后(下)

十.[iOS]关于面试,做一次整理吧(包含BAT面试题目)

[六]高级-问题 #2(讲解)
Swift可以自定义运算符。自定义的运算符可以在全局使用。需要使用operator关键字。使用prefix, infix or postfix标记运算符使用的位置。

prefix operator +++ {}
prefix func +++ (inout vector: Vector2D) -> Vector2D {
    vector += vector
    return vector
}

var toBeDoubled = Vector2D(x: 1.0, y: 4.0)
let afterDoubling = +++toBeDoubled
// toBeDoubled now has values of (2.0, 8.0)
// afterDoubling also has values of (2.0, 8.0)

自定义操作符,可以定义操作符的关联性associativity和优先级precedence。associativity有三个值:left, right, none,默认是none。precedence默认值是:100。

infix operator +- { associativity left precedence 140 }
func +- (left: Vector2D, right: Vector2D) -> Vector2D {
    return Vector2D(x: left.x + right.x, y: left.y - right.y)
}
let firstVector = Vector2D(x: 1.0, y: 2.0)
let secondVector = Vector2D(x: 3.0, y: 4.0)
let plusMinusVector = firstVector +- secondVector
// plusMinusVector is a Vector2D instance with values of (4.0, -2.0)

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