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 . Π”Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ Ρ‚Ρ€ΡŽΠΊΠΎΠ² ("Ρ…Π°-Ρ…Π°"), я Π²ΠΈΠ΄Π΅Π» это Π±ΠΎΠ»ΠΎΡ‚ΠΎ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. (ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Ρ€Π°Π΄ΡƒΠ³Π°.) Π—Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ Π΄Π²Π°ΠΆΠ΄Ρ‹ провСряли свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, каТСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΈΠ΄Π΅Π΅ΠΉ.

Π§Ρ‚ΠΎ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅?

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

@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] = [] , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° позволяСт ΠΌΠ½Π΅ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ массивы (ΠΈ словари) довольно Ρ€Π°Π½ΠΎ Π² ΠΌΠΎΠΈΡ… курсах. Мой ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с нуля, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Ρ‚Π΅ΠΌΡƒ Π·Π° Ρ€Π°Π· ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π²Π΅Ρ‰ΠΈ Π½Π΅ΠΎΠ±ΡŠΡΡΠ½ΠΈΠΌΡ‹ΠΌΠΈ. Π­Ρ‚Π° нотация позволяСт ΠΌΠ½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π΅ΠΌΡ‹, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ учащиСся Π΅Ρ‰Π΅ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ»ΠΈ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ.

Π›ΡŽΠ±ΠΈΡ‚ΡŒ это. Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π²Π°ΠΌΠΈ синтаксис Π² своих собствСнных ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… Π±Π°Π·Π°Ρ…; ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΎΠ΄Π½ΠΎΠΉ стороны уравнСния, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ. ΠšΡ€Π°ΡΠΈΠ²ΠΎ ΠΈ просто.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

luki picture luki  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

aramezk picture aramezk  Β·  9ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

jackwu95 picture jackwu95  Β·  6ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

hollance picture hollance  Β·  28ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

gokselkoksal picture gokselkoksal  Β·  9ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ