Swift-style-guide: рдЦрд╛рд▓реА рд╕рд░рдгреА рдФрд░ рд╢рдмреНрджрдХреЛрд╢ рдЖрд░рдВрднреАрдХрд░рдг рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░

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

рд╡рд░реНрддрдорд╛рди рд╕реНрдЯрд╛рдЗрд▓ рдЧрд╛рдЗрдб рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

var names = [String]()
var lookup = [String: Int]()

рдореИрдВ рдЗрд╕рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдкреАрдЫреЗ рд╣рдЯрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛:

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

рдпрд╣рд╛рдБ рдореЗрд░рд╛ рддрд░реНрдХ рд╣реИ:

  • [Type]() рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдирд╡рд╛рдЧрдВрддреБрдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рджреЗрд╢реА рджрд┐рдЦрддрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП, : [Type] = [] рдмрд╕ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рдкрдврд╝рддрд╛ рд╣реИред
  • рдЬрдм рдореИрдВ рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА (рдпрд╛ OptionSetType) рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдкреНрд░рдХрд╛рд░ рдЕрдиреБрдорд╛рди рдЙрдкрд▓рдмреНрдз рд╣реИ, рддреЛ рдореИрдВ рд╣рдореЗрд╢рд╛ [] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВред рдпрд╣рд╛рдВ рдХреБрдЫ рдирд┐рд░рдВрддрд░рддрд╛ рд╣реИред
  • рд╕рдВрдХреНрд╖рд┐рдкреНрдд, рдПрдХрд▓ рдкрдВрдХреНрддрд┐ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдХреНрд╕рд░ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдлреИрд▓реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрдорд╛рди рдорд╣рдВрдЧрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛:
var stuff = [1, 2, 3, 4, 5,  // ... 100 more numbers
                  106.7, 107, "haha", nil, 108, 109]

рдЯрд╛рдЗрдк рдЪреЗрдХрд░ рдХреЛ рдЕрдиреБрдорд╛рди stuff рдХреЛ рдареАрдХ рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЬрдм рдХреЛрдИ рдЪрд╛рд▓ рдирд╣реАрдВ рд╣реИ ("рд╣рд╛рд╣рд╛"), рдореИрдВрдиреЗ рдЗрд╕ рд╕рдВрдкрд╛рджрдХ рдХреЛ рдиреАрдЪреЗ рджреЗрдЦрд╛ рд╣реИред (рдирдорд╕реНрдХрд╛рд░ рдЗрдВрджреНрд░рдзрдиреБрд╖ред) рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдЪреЗрдХрд░ рдХреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд▓рдЧрддрд╛ рд╣реИред

  • Apple рдкреНрд░рдХрд╛рд╢рди (рджреВрд╕рд░реЛрдВ рдХреЗ рдмреАрдЪ, objc.io) var items: [Type] = [] рдлреЙрд░реНрдо рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред https://twitter.com/_jackhl/status/646480946619805697

рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?

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

@rayfix рдореИрдВ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рдП рдЧрдП рдкреНрд░рд╛рд░реВрдк рдпрд╛рдиреА var names: [String] = [] . рдХреЛ рддрд░рдЬреАрд╣ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝рд╛ рд╣реБрдЖ рд╣реВрдВ

рдореЗрд░рд╛ рддрд░реНрдХ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдХрд┐рд╕реА рд╕рд░рдгреА рдХреЛ let рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рджрд┐рдЦрддрд╛ рд╣реИред (рдЖрдк рдЗрд╕реЗ рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ)

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ:

class SimpleClass {
    let array: [String]

    init(array: [String]) {
        self.array = array
    }    
}

рдпрд╛ рдПрдХ рд╕реНрдерд┐рд░ рд╕рд░рдгреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЬрд┐рд╕рдХрд╛ рдорд╛рди рдХрд┐рд╕реА рд╢рд░реНрдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

let array: [String]
if condition {
    array = array1
} else {
    array = array2
}

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

@rayfix рдореИрдВ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рдП рдЧрдП рдкреНрд░рд╛рд░реВрдк рдпрд╛рдиреА var names: [String] = [] . рдХреЛ рддрд░рдЬреАрд╣ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝рд╛ рд╣реБрдЖ рд╣реВрдВ

рдореЗрд░рд╛ рддрд░реНрдХ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдХрд┐рд╕реА рд╕рд░рдгреА рдХреЛ let рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рджрд┐рдЦрддрд╛ рд╣реИред (рдЖрдк рдЗрд╕реЗ рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ)

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ:

class SimpleClass {
    let array: [String]

    init(array: [String]) {
        self.array = array
    }    
}

рдпрд╛ рдПрдХ рд╕реНрдерд┐рд░ рд╕рд░рдгреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЬрд┐рд╕рдХрд╛ рдорд╛рди рдХрд┐рд╕реА рд╢рд░реНрдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

let array: [String]
if condition {
    array = array1
} else {
    array = array2
}

рдЗрд╕ рдкрд░ рдмрдбрд╝рд╛ +1!

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП var array: [Type] = [] рдЕрдВрдХрди рдХреЛ рдЪреБрдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ рдЕрдкрдиреЗ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдХрд╛рдлреА рдкрд╣рд▓реЗ рд╣реА рд╕рд░рдгрд┐рдпреЛрдВ (рдФрд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ) рдХреЛ рдкрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореЗрд░рд╛ рд╢рд┐рдХреНрд╖рдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЦрд░реЛрдВрдЪ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ, рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╖рдп рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдФрд░ рдЪреАрдЬреЛрдВ рдХреЛ рдХрднреА рднреА рдЕрд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдЫреЛрдбрд╝рдирд╛ рд╣реИред рдпрд╣ рд╕рдВрдХреЗрддрди рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХреЛрдИ рднреА рд╡рд┐рд╖рдп рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЫрд╛рддреНрд░ рдЕрднреА рддрдХ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрдХрд░реНрддрд╛ рдпрд╛ рдЬреЗрдирд░рд┐рдХред

рдЗрд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рдирд╛ред рдореИрдВ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рдП рдЧрдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкрдиреЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВ; рд╕рдореАрдХрд░рдг рдХреЗ рдПрдХ рддрд░рдл var рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рдкреНрд░рдХрд╛рд░, рджреВрд╕рд░реА рддрд░рдл рдорд╛рдиред рдЕрдЪреНрдЫрд╛ рдФрд░ рд╕рд░рд▓ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

designatednerd picture designatednerd  ┬╖  22рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rwenderlich picture rwenderlich  ┬╖  29рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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