Swift 2.2から++
や--
を使っていると警告が出るようになりました。
SE-0004 Remove the ++ and -- operators
++
は変数の前に書くか後ろに書くかで挙動が変わるし、もうみんな使わないよね?ということらしいです。
var x = 0
print(x++) // 0
print(x) // 1
print(++x) // 2
確かに最近使わなくなったよなぁと思っていたら、自作ライブラリのJSONRPCKitで使ってました\(^o^)/
NumberIdentifierGenerator.swift
public class NumberIdentifierGenerator: RequestIdentifierGenerator {
private var currentIdentifier = 1
public func next() -> RequestIdentifier {
return .NumberIdentifier(currentIdentifier++) // ←ココ
}
}
なるほど、現在の値を使ってreturn
した後にインクリメントしたかったようです。
これはdefer
の出番ですね!
public func next() -> RequestIdentifier {
defer {
currentIdentifier += 1
}
return .NumberIdentifier(currentIdentifier)
}
これで解決!
・・・
でも、たぶん実際にはこうやって直すと思います。ごめんよ、defer
…。
public class NumberIdentifierGenerator: RequestIdentifierGenerator {
private var currentIdentifier = 0
public func next() -> RequestIdentifier {
currentIdentifier += 1
return .NumberIdentifier(currentIdentifier)
}
}