0
對於下列:遺留不斷侵犯* 2
struct Constants {
static let m2Pi = CGFloat(M_PI) * 2
}
SwiftLint 0.16.1警告我:
警告:傳統恆衝突:STRUCT範圍的常數是優選在傳統的全局常量上。 (legacy_constant)
請注意,我需要此值爲UIBezierPath.init(arcCenter center: CGPoint, radius: CGFloat, startAngle: CGFloat, endAngle: CGFloat, clockwise: Bool)
以獲得一個封閉的弧線。
這似乎只是一個愚蠢的警告,我...作爲C開發人員,那些全局常量是非常重要的......如果你創建了一個枚舉或命名空間並使常量等於全局常量,它會在你指定全局常量的位置上抱怨它嗎? –
@GradyPlayer代碼質量很重要。這不是一個愚蠢的警告。請注意,'M_PI'實際上是一個宏,因此在C中它可以轉換爲任何類型(它是一個文字)。在Swift中,你必須對它進行強制轉換,因此使用這個特定類型的已經給定的常量會更安全。將它們命名爲一個結構並刪除不需要的M_前綴(它不再是全局的)只是讓你的代碼更加一致。 – Sulthan