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