Swift-style-guide: рдЦрд╛рд▓реА рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдВрдЧрддрд┐

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдЕрдкреНрд░реИрд▓ 2017  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: raywenderlich/swift-style-guide

рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛, рдореИрдВ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдмрддрд╛рдИ рдЧрдИ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрд╛рддреЛрдВ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрд╕рдВрдЧрдд рд▓рдЧрддрд╛ рд╣реИ:

https://github.com/raywenderlich/swift-style-guide#type -annotation-for-empty-arrays-and-dictionaries

рдЧрд╛рдЗрдб рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ:

// preferred
var names: [String] = []
var lookup: [String: Int] = [:]

рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

// not preferred
var names = [String]()
var lookup = [String: Int]()

рд▓реЗрдХрд┐рди рдЧрд╛рдЗрдб рдЖрдорддреМрд░ рдкрд░ рдХреЙрдореНрдкреИрдХреНрдЯ рдХреЛрдб рдХреЗ рд╣рд┐рдд рдореЗрдВ рдЕрдиреБрдорд╛рдирд┐рдд рдкреНрд░рдХрд╛рд░ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ:

// preferred
let message = "Click the button"
let currentBounds = computeViewBounds()

`` `рддреЗрдЬ
// рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ
рд╕рдВрджреЗрд╢ рджреЗрдВ: рд╕реНрдЯреНрд░рд┐рдВрдЧ = "рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ"
рдХрд░рдВрдЯ рдмрд╛рдЙрдВрдбреНрд╕ рджреЗрдВ: CGRect = рдХрдВрдкреНрдпреВрдЯ рд╡реНрдпреВрдмрд╛рдЙрдВрдбреНрд╕ ()

If we were being consistent, shouldn't we always prefer inferred types over explicit declaration?  I would think this is more consistent
```swift
// should be preferred
var names = [String]();
var lookup = [String: Int]();

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЧрд╛рдЗрдб рдпрд╣рд╛рдБ рд╕рд╣реА рд╣реИред рдпрд╣ рдмрд╕ рдХрд╣рддрд╛ рд╣реИ, рдЬрдм рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдЬрдм рдирд╣реАрдВ, рдЧрд┐рд░рд╛ рджреЗрдВред

рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢реИрд▓реА рдХрд╛ рдЪреБрдирд╛рд╡ рдирд╣реАрдВ рд╣реИ? рдирд╣реАрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВред рдЖрдЗрдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:

// preferred
var colors: [UIColor]?
var colors: [UIColor] = []
var colors: [UIColor] = [.red, .green, .blue]

рдЕрдм, рдЙрди 3 рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЖрдкрдХреА рд╕реБрдЭрд╛рдИ рдЧрдИ рд╡рд░реАрдпрддрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

var colors: [UIColor]?
var colors = [UIColor]()
var colors = [UIColor.red, UIColor.green, UIColor.blue]

рджреЗрдЦрд┐рдП рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реБрдЖ? рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдЕрдм рд╣рдореЗрдВ рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП UIColor рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдпрд╣ рднреА рддрд░реНрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдШреЛрд╖рдгрд╛рдПрдВ рдЕрдм рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдХрдо рд╕рдВрдЧрдд рд╣реИрдВред

рдлрд┐рд░ рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдареАрдХ рд╣реИ, рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛрдб рдХреЛ рджреВрд░ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

// do we need to specify type?
var colors: [UIColor] = rainbowColors()
// no we don't
var colors = rainbowColors()

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рд╣реИ?

_рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╕рднреА рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ, рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рд░рдгреА рдХрд╛ рднреА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рдирд┐рд░рдВрддрд░рддрд╛ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдореИрдВ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдмрд╕ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рд╕рд╣реА рд░рд╣реВрдВрдЧрд╛ред_

// preferred
var colors: [UIColor] = [.red, .green, .blue]
// not preferred
var colors = [.red, UIColor.green, .blue]

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЧрд╛рдЗрдб рдпрд╣рд╛рдБ рд╕рд╣реА рд╣реИред рдпрд╣ рдмрд╕ рдХрд╣рддрд╛ рд╣реИ, рдЬрдм рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдЬрдм рдирд╣реАрдВ, рдЧрд┐рд░рд╛ рджреЗрдВред

рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢реИрд▓реА рдХрд╛ рдЪреБрдирд╛рд╡ рдирд╣реАрдВ рд╣реИ? рдирд╣реАрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВред рдЖрдЗрдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:

// preferred
var colors: [UIColor]?
var colors: [UIColor] = []
var colors: [UIColor] = [.red, .green, .blue]

рдЕрдм, рдЙрди 3 рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЖрдкрдХреА рд╕реБрдЭрд╛рдИ рдЧрдИ рд╡рд░реАрдпрддрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

var colors: [UIColor]?
var colors = [UIColor]()
var colors = [UIColor.red, UIColor.green, UIColor.blue]

рджреЗрдЦрд┐рдП рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реБрдЖ? рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдЕрдм рд╣рдореЗрдВ рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП UIColor рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдпрд╣ рднреА рддрд░реНрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдШреЛрд╖рдгрд╛рдПрдВ рдЕрдм рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдХрдо рд╕рдВрдЧрдд рд╣реИрдВред

рдлрд┐рд░ рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдареАрдХ рд╣реИ, рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛрдб рдХреЛ рджреВрд░ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

// do we need to specify type?
var colors: [UIColor] = rainbowColors()
// no we don't
var colors = rainbowColors()

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рд╣реИ?

_рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╕рднреА рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ, рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рд░рдгреА рдХрд╛ рднреА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рдирд┐рд░рдВрддрд░рддрд╛ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдореИрдВ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдмрд╕ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рд╕рд╣реА рд░рд╣реВрдВрдЧрд╛ред_

// preferred
var colors: [UIColor] = [.red, .green, .blue]
// not preferred
var colors = [.red, UIColor.green, .blue]

рдореИрдВ рд╕рд╛рде рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реЛрддрд╛

var colors: [UIColor]?
var colors = [UIColor]()
var colors: [UIColor] = [.red, .green, .blue]

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрдкрдиреЗ рдКрдкрд░ рдХреНрдпрд╛ рдХрд┐рдпрд╛ред рдЬрдм рд╕реНрдкрд╖реНрдЯ рдШреЛрд╖рдгрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдХреНрдпрд╛ рд╣рдо рдЕрдиреБрдорд╛рдирд┐рдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ? рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ рд╕реБрд╕рдВрдЧрдд рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред

рдЖрдк рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рд╕рд╣реА рд╣реИрдВ рдХрд┐ рдореИрдВрдиреЗ рд╢рд╛рдпрдж рдирд┐рдпрдо рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред рдРрд╕рд╛ рдХрд╣рдиреЗ рдХреЗ рдмрд╛рдж, рдХрд┐рд╕реА рднреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рд╡рд░реАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЦрд╛рд▓реА/рдЧреИрд░-рдЦрд╛рд▓реА рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдЬрд╛рдиреЗ рдкрд░ рдореБрдЭреЗ рдиреАрдЪреЗ рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд, рдЕрдзрд┐рдХ рдкрдардиреАрдп рдФрд░ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рджреВрд╕рд░реЛрдВ рдХреЛ рдЕрдВрджрд░ рдЖрдиреЗ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

// preferred
var colors: [UIColor]?
var colors: [UIColor] = []
var colors: [UIColor] = [.red]
// not preferred (in my opinion)
var colors: [UIColor]?
var colors = [UIColor]()
var colors: [UIColor] = [.red]

рдЖрдкрдХреЗ рд╕рд╛рде рдЬреЛ рд╕рдорд╕реНрдпрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рдЕрд╕рдВрдЧрддрд┐ рд╣реИ:

// inconsistent?
var colors: [UIColor] = []
var colors = rainbowColors()
// your preference
var colors = [UIColor]()
var colors = rainbowColors()

@RobertGummesson , рдЖрдк рдХреЗрд╡рд▓ рдЙрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд▓реЗ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░рдгреА/рд╢рдмреНрджрдХреЛрд╢ рд╢рд╛рдмреНрджрд┐рдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рд╕рд░рдгреА рдЕрдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдЖрдмрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рдгрд┐рдпрд╛рдБ рд╣реИрдВ, рддреЛ рджреЛрдиреЛрдВ рд╕рдорд╛рдзрд╛рди рдареАрдХ рд╣реЛрдВрдЧреЗред рдЖрдк рдЬреЛ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣реЗ рдереЗ рдЙрд╕рдХрд╛ рднреА рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╣рдореЗрдВ рд╕реЗрдЯ рдорд┐рд▓ рдЧрдП, рдФрд░ рдореБрдЭреЗ рдПрдХ рд╕рдореНрдореЗрд▓рди рдкрд░ рдорд╛рдирдХреАрдХрд░рдг рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рднреА рд╢рд╛рдорд┐рд▓ рдереЗред рдЖрдк рдЬреЛ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рд╕реНрдкрд╖реНрдЯ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрд░реВрдк рд╣реИред

var ints: Set = [1, 1, 2, 2]
var ints = Set([1, 1, 2, 2])
var ints = Set(arrayLiteral: 1, 1, 2, 2)

рдЗрд╕рд▓рд┐рдП, рдЧреИрд░-рд░рд┐рдХреНрдд рд╕реЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реЛрдиреЗ рдХреЗ рд╢реАрд░реНрд╖ рд╡рд┐рдХрд▓реНрдк рдкрд░ рдмрд╕рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдЦрд╛рд▓реА рд╕рдВрд╕реНрдХрд░рдг, рдФрд░ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рдгреА рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЛ рдмреИрдХрдлреЙрд░реНрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

var ints: Set<Int> = []
var ints = Set<Int>() // instead of this, which, without the above, seems fine.

var ints = [1, 1, 2, 2]
var ints: [Int] = []
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

hollance picture hollance  ┬╖  28рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

samkim102 picture samkim102  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

aramezk picture aramezk  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

WingYn picture WingYn  ┬╖  15рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rayfix picture rayfix  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ