diff options
Diffstat (limited to 'ru-ru')
-rw-r--r-- | ru-ru/swift-ru.html.markdown | 54 |
1 files changed, 28 insertions, 26 deletions
diff --git a/ru-ru/swift-ru.html.markdown b/ru-ru/swift-ru.html.markdown index 6a90b474..07164158 100644 --- a/ru-ru/swift-ru.html.markdown +++ b/ru-ru/swift-ru.html.markdown @@ -9,11 +9,11 @@ translators: lang: ru-ru --- -Swift - это язык программирования, созданный компанией Apple, для разработки -приложений iOS и OS X. Разработанный, чтобы сосуществовать с Objective-C и +Swift - это язык программирования, созданный компанией Apple, для приложений +под iOS и OS X. Разработанный, чтобы сосуществовать с Objective-C и быть более устойчивым к ошибочному коду, Swift был представлен в 2014 году на конференции разработчиков Apple, WWDC. Приложения на Swift собираются -с помощью LLVM компилятора, включенного в Xcode 6+. +с помощью LLVM-компилятора, включенного в Xcode 6+. Официальная книга по [языку программирования Swift](https://itunes.apple.com/us/book/swift-programming-language/id881256329) от Apple доступна в iBooks. @@ -27,7 +27,7 @@ import UIKit // MARK: Основы // -// Xcode поддерживает заметные маркеры, чтобы давать примечания свою коду +// Xcode поддерживает маркеры, чтобы давать примечания своему коду // и вносить их в список обозревателя (Jump Bar) // MARK: Метка раздела // TODO: Сделайте что-нибудь вскоре @@ -44,7 +44,7 @@ let π = 3.1415926 let convenience = "Ключевое слово" // контекстное имя переменной let weak = "Ключевое слово"; let override = "еще ключевое слово" // операторы // могут быть отделены точкой с запятой -let `class` = "Ключевое слово" // одинарные кавычки позволяют использовать +let `class` = "Ключевое слово" // обратные апострофы позволяют использовать // ключевые слова в именовании переменных let explicitDouble: Double = 70 let intValue = 0007 // 7 @@ -63,17 +63,17 @@ let piText = "Pi = \(π), Pi 2 = \(π * 2)" // Вставка переменны println("Значение сборки: \(buildValue)") // Значение сборки: 7 /* - Optional - это особенность языка Swift, которая допускает вам сохранять + Опционалы - это особенность языка Swift, которая допускает вам сохранять `некоторое` или `никакое` значения. Язык Swift требует, чтобы каждое свойство имело значение, поэтому даже nil - должен явно сохранен как Optional значение. + должен быть явно сохранен как опциональное значение. Optional<T> является перечислением. */ -var someOptionalString: String? = "optional" // Может быть nil -// как и выше, только ? это постфиксный оператор (синтаксический сахар) -var someOptionalString2: Optional<String> = "optional" +var someOptionalString: String? = "опционал" // Может быть nil +// как и выше, только ? - это постфиксный оператор (синтаксический сахар) +var someOptionalString2: Optional<String> = "опционал" if someOptionalString != nil { // я не nil @@ -85,9 +85,9 @@ if someOptionalString != nil { } someOptionalString = nil -// неявная развертка переменной Optional +// неявная развертка опциональной переменной var unwrappedString: String! = "Ожидаемое значение." -// как и выше, только ! постфиксный оператор (с еще одним синтаксическим сахаром) +// как и выше, только ! - постфиксный оператор (с еще одним синтаксическим сахаром) var unwrappedString2: ImplicitlyUnwrappedOptional<String> = "Ожидаемое значение." if let someOptionalStringConstant = someOptionalString { @@ -97,7 +97,7 @@ if let someOptionalStringConstant = someOptionalString { } } -// Swift поддерживает сохранение значение любого типа +// Swift поддерживает сохранение значения любого типа // AnyObject == id // В отличие от `id` в Objective-C, AnyObject работает с любым значением (Class, // Int, struct и т.д.) @@ -119,7 +119,7 @@ anyObjectVar = "Изменять значение на строку не явл /* Массив (Array) и словарь (Dictionary) являются структурами (struct). Так `let` и `var` также означают, что они изменяются (var) или не изменяются (let) - при объявлении типов. + при объявлении переменных этих типов. */ // Массив @@ -187,12 +187,12 @@ let vegetable = "красный перец" switch vegetable { case "сельдерей": let vegetableComment = "Добавьте немного изюма, имитируя муравьев на бревнышке." -case "огурец", "жеруха": +case "огурец", "кресс-салат": let vegetableComment = "Было бы неплохо сделать бутерброд с чаем." case let localScopeValue where localScopeValue.hasSuffix("перец"): let vegetableComment = "Это острый \(localScopeValue)?" -default: // обязательный (чтобы преодолеть все возможные вхождения) - let vegetableComment = "Все вкусы хороши для супа." +default: // обязательный (чтобы предусмотреть все возможные вхождения) + let vegetableComment = "В супе все овощи вкусные." } @@ -208,8 +208,8 @@ default: // обязательный (чтобы преодолеть все в /** Операция приветствия - - Жирная метка в документировании - - Еще одна жирная метка в документации + - Маркер в документировании + - Еще один маркер в документации :param: name - это имя :param: day - это день @@ -289,7 +289,7 @@ numbers = numbers.map({ number in 3 * number }) print(numbers) // [3, 6, 18] -// Упрощение замыкания +// Хвостовое замыкание numbers = sorted(numbers) { $0 > $1 } print(numbers) // [18, 6, 3] @@ -367,7 +367,7 @@ internal class Rect: Shape { init(sideLength: Int) { self.sideLength = sideLength - // всегда вызывается super.init последним, когда init с параметрами + // последним всегда вызывается super.init, когда init с параметрами super.init() } @@ -397,7 +397,7 @@ print(mySquare.sideLength) // 4 // преобразование объектов let aShape = mySquare as Shape -// сравнение объектов, но не как операция ==, которая проверяет эквивалентность +// сравнение экземпляров, в отличие от ==, которая проверяет эквивалентность if mySquare === mySquare { println("Ага, это mySquare") } @@ -422,14 +422,14 @@ enum Suit { } } -// Значения перечислений допускают жесткий синтаксис, нет необходимости +// Значения перечислений допускают сокращенный синтаксис, нет необходимости // указывать тип перечисления, когда переменная объявляется явно var suitValue: Suit = .Hearts // Нецелочисленные перечисления требуют прямого указания значений enum BookName: String { - case John = "John" - case Luke = "Luke" + case John = "Иоанн" + case Luke = "Лука" } println("Имя: \(BookName.John.rawValue)") @@ -459,7 +459,9 @@ class MyShape: Rect { func grow() { sideLength += 2 - + // Размещайте знак вопроса перед опционным свойством, методом + // или индексом, чтобы не учитывать nil-значение и возвратить nil + // вместо выбрасывания ошибки выполнения (т.н. "опционная цепочка") if let allow = self.delegate?.canReshape?() { // проверка делегата на выполнение метода self.delegate?.reshaped?() |