summaryrefslogtreecommitdiffhomepage
path: root/ru-ru/swift-ru.html.markdown
diff options
context:
space:
mode:
authorTheDmitry <TheDmitry@users.noreply.github.com>2015-01-26 10:55:19 +0300
committerTheDmitry <TheDmitry@users.noreply.github.com>2015-01-26 10:55:19 +0300
commit5f0f3e992c3d6303bf0d8f70d3cf9ca2d6d56431 (patch)
tree7c8c7d404666816144810fac7435e6602c587ec1 /ru-ru/swift-ru.html.markdown
parentb60ed50cdd5ed990bf2b88d6be6f1e6e1cd2775e (diff)
parent553bf62f896f22d8cab43e127693a5af561fe0c7 (diff)
Merge remote-tracking branch 'upstream/master' into json-ru
Diffstat (limited to 'ru-ru/swift-ru.html.markdown')
-rw-r--r--ru-ru/swift-ru.html.markdown56
1 files changed, 29 insertions, 27 deletions
diff --git a/ru-ru/swift-ru.html.markdown b/ru-ru/swift-ru.html.markdown
index f788ad4c..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)
- при объявлении типов.
+ при объявлении переменных этих типов.
*/
// Массив
@@ -186,13 +186,13 @@ do {
let vegetable = "красный перец"
switch vegetable {
case "сельдерей":
- let vegetableComment = "Добавьте немного изюма и make ants on a log."
-case "огурец", "жеруха":
+ let vegetableComment = "Добавьте немного изюма, имитируя муравьев на бревнышке."
+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?()