1
0
mirror of https://github.com/adambard/learnxinyminutes-docs.git synced 2025-08-01 04:20:39 +02:00

Merge pull request #2899 from damian-rzeszot/swift-style-guidelines

[swift/many] Style guidelines
This commit is contained in:
Andre Polykanine A.K.A. Menelion Elensúlë
2017-10-09 23:03:33 +03:00
committed by GitHub
8 changed files with 121 additions and 121 deletions

View File

@@ -440,13 +440,13 @@ if let circle = myEmptyCircle {
// Wie Klassen auch können sie Methoden haben
enum Suit {
case Spades, Hearts, Diamonds, Clubs
case spades, hearts, diamonds, clubs
func getIcon() -> String {
switch self {
case .Spades: return "♤"
case .Hearts: return "♡"
case .Diamonds: return "♢"
case .Clubs: return "♧"
case .spades: return "♤"
case .hearts: return "♡"
case .diamonds: return "♢"
case .clubs: return "♧"
}
}
}
@@ -455,35 +455,35 @@ enum Suit {
// Enum-Werte können vereinfacht geschrieben werden, es muss nicht der Enum-Typ
// genannt werden, wenn die Variable explizit deklariert wurde
var suitValue: Suit = .Hearts
var suitValue: Suit = .hearts
// Nicht-Integer-Enums brauchen direkt zugewiesene "Rohwerte"
enum BookName: String {
case John = "John"
case Luke = "Luke"
case john = "John"
case luke = "Luke"
}
print("Name: \(BookName.John.rawValue)")
print("Name: \(BookName.john.rawValue)")
// Enum mit assoziierten Werten
enum Furniture {
// mit Int assoziiert
case Desk(height: Int)
case desk(height: Int)
// mit String und Int assoziiert
case Chair(String, Int)
case chair(String, Int)
func description() -> String {
switch self {
case .Desk(let height):
case .desk(let height):
return "Desk with \(height) cm"
case .Chair(let brand, let height):
case .chair(let brand, let height):
return "Chair of \(brand) with \(height) cm"
}
}
}
var desk: Furniture = .Desk(height: 80)
var desk: Furniture = .desk(height: 80)
print(desk.description()) // "Desk with 80 cm"
var chair = Furniture.Chair("Foo", 40)
var chair = Furniture.chair("Foo", 40)
print(chair.description()) // "Chair of Foo with 40 cm"

View File

@@ -446,48 +446,48 @@ if let circle = myEmptyCircle {
// Al igual que las clases, pueden contener métodos
enum Suit {
case Spades, Hearts, Diamonds, Clubs
case spades, hearts, diamonds, clubs
func getIcon() -> String {
switch self {
case .Spades: return "♤"
case .Hearts: return "♡"
case .Diamonds: return "♢"
case .Clubs: return "♧"
case .spades: return "♤"
case .hearts: return "♡"
case .diamonds: return "♢"
case .clubs: return "♧"
}
}
}
// Los valores de enum permite la sintaxis corta, sin necesidad de poner
// el tipo del enum cuando la variable es declarada de manera explícita
var suitValue: Suit = .Hearts
var suitValue: Suit = .hearts
// Enums de tipo no-entero requiere asignaciones de valores crudas directas
enum BookName: String {
case John = "John"
case Luke = "Luke"
case john = "John"
case luke = "Luke"
}
print("Name: \(BookName.John.rawValue)")
print("Name: \(BookName.john.rawValue)")
// Enum con valores asociados
enum Furniture {
// Asociación con Int
case Desk(height: Int)
case desk(height: Int)
// Asociación con String e Int
case Chair(String, Int)
case chair(String, Int)
func description() -> String {
switch self {
case .Desk(let height):
case .desk(let height):
return "Desk with \(height) cm"
case .Chair(let brand, let height):
case .chair(let brand, let height):
return "Chair of \(brand) with \(height) cm"
}
}
}
var desk: Furniture = .Desk(height: 80)
var desk: Furniture = .desk(height: 80)
print(desk.description()) // "Desk with 80 cm"
var chair = Furniture.Chair("Foo", 40)
var chair = Furniture.chair("Foo", 40)
print(chair.description()) // "Chair of Foo with 40 cm"

View File

@@ -389,13 +389,13 @@ if mySquare === mySquare {
// Podem conter métodos do mesmo jeito que classes.
enum Suit {
case Spades, Hearts, Diamonds, Clubs
case spades, hearts, diamonds, clubs
func getIcon() -> String {
switch self {
case .Spades: return "♤"
case .Hearts: return "♡"
case .Diamonds: return "♢"
case .Clubs: return "♧"
case .spades: return "♤"
case .hearts: return "♡"
case .diamonds: return "♢"
case .clubs: return "♧"
}
}
}

View File

@@ -445,49 +445,49 @@ if let circle = myEmptyCircle {
// Enums pode opcionalmente ser um tipo especifico ou não.
// Enums podem conter métodos tal como as classes.
enum Suit {
case Spades, Hearts, Diamonds, Clubs
enum suit {
case spades, hearts, diamonds, clubs
func getIcon() -> String {
switch self {
case .Spades: return "♤"
case .Hearts: return "♡"
case .Diamonds: return "♢"
case .Clubs: return "♧"
case .spades: return "♤"
case .hearts: return "♡"
case .diamonds: return "♢"
case .clubs: return "♧"
}
}
}
// Os valores de Enum permitem syntax reduzida, não é preciso escrever o tipo do enum
// quando a variável é explicitamente definida.
var suitValue: Suit = .Hearts
var suitValue: Suit = .hearts
// Enums que não sejam inteiros obrigam a atribuições valor bruto (raw value) diretas
enum BookName: String {
case John = "John"
case Luke = "Luke"
case john = "John"
case luke = "Luke"
}
print("Name: \(BookName.John.rawValue)")
print("Name: \(BookName.john.rawValue)")
// Enum com valores associados
enum Furniture {
// Associar com um inteiro (Int)
case Desk(height: Int)
case desk(height: Int)
// Associar com uma String e um Int
case Chair(String, Int)
case chair(String, Int)
func description() -> String {
switch self {
case .Desk(let height):
case .desk(let height):
return "Desk with \(height) cm"
case .Chair(let brand, let height):
case .chair(let brand, let height):
return "Chair of \(brand) with \(height) cm"
}
}
}
var desk: Furniture = .Desk(height: 80)
var desk: Furniture = .desk(height: 80)
print(desk.description()) // "Desk with 80 cm"
var chair = Furniture.Chair("Foo", 40)
var chair = Furniture.chair("Foo", 40)
print(chair.description()) // "Chair of Foo with 40 cm"

View File

@@ -376,14 +376,14 @@ print("Имя :\(name)") // Имя: Яков
// Протокол `Error` используется для перехвата выбрасываемых ошибок
enum MyError: Error {
case BadValue(msg: String)
case ReallyBadValue(msg: String)
case badValue(msg: String)
case reallyBadValue(msg: String)
}
// фунции помеченные словом `throws` должны вызываться с помощью `try`
func fakeFetch(value: Int) throws -> String {
guard 7 == value else {
throw MyError.ReallyBadValue(msg: "Действительно плохое значение")
throw MyError.reallyBadValue(msg: "Действительно плохое значение")
}
return "тест"
@@ -401,7 +401,7 @@ func testTryStuff() {
do {
// обычно try оператор, позволяющий обработать ошибку в `catch` блоке
try fakeFetch(value: 1)
} catch MyError.BadValue(let msg) {
} catch MyError.badValue(let msg) {
print("Ошибка: \(msg)")
} catch {
// все остальное
@@ -535,49 +535,49 @@ if let circle = myEmptyCircle {
// Они могут содержать методы подобно классам.
enum Suit {
case Spades, Hearts, Diamonds, Clubs
case spades, hearts, diamonds, clubs
func getIcon() -> String {
switch self {
case .Spades: return "♤"
case .Hearts: return "♡"
case .Diamonds: return "♢"
case .Clubs: return "♧"
case .spades: return "♤"
case .hearts: return "♡"
case .diamonds: return "♢"
case .clubs: return "♧"
}
}
}
// Значения перечислений допускают сокращенный синтаксис, нет необходимости
// указывать тип перечисления, когда переменная объявляется явно
var suitValue: Suit = .Hearts
var suitValue: Suit = .hearts
// Значения нецелочисленных перечислений должны быть указаны явно
// или могут выводится с помощью функции `rawValue` из имени
enum BookName: String {
case John
case Luke = "Лука"
case john
case luke = "Лука"
}
print("Имя: \(BookName.John.rawValue)")
print("Имя: \(BookName.john.rawValue)")
// Перечисление (enum) со связанными значениями
enum Furniture {
// Связать с типом Int
case Desk(height: Int)
case desk(height: Int)
// Связать с типами String и Int
case Chair(String, Int)
case chair(String, Int)
func description() -> String {
switch self {
case .Desk(let height):
case .desk(let height):
return "Письменный стол высотой \(height) см."
case .Chair(let brand, let height):
case .chair(let brand, let height):
return "Стул марки \(brand) высотой \(height) см."
}
}
}
var desk: Furniture = .Desk(height: 80)
var desk: Furniture = .desk(height: 80)
print(desk.description()) // "Письменный стол высотой 80 см."
var chair = Furniture.Chair("Foo", 40)
var chair = Furniture.chair("Foo", 40)
print(chair.description()) // "Стул марки Foo высотой 40 см."

View File

@@ -361,14 +361,14 @@ print("Name is \(name)") // Name is Them
// The `Error` protocol is used when throwing errors to catch
enum MyError: Error {
case BadValue(msg: String)
case ReallyBadValue(msg: String)
case badValue(msg: String)
case reallyBadValue(msg: String)
}
// functions marked with `throws` must be called using `try`
func fakeFetch(value: Int) throws -> String {
guard 7 == value else {
throw MyError.ReallyBadValue(msg: "Some really bad value")
throw MyError.reallyBadValue(msg: "Some really bad value")
}
return "test"
@@ -385,7 +385,7 @@ func testTryStuff() {
do {
// normal try operation that provides error handling via `catch` block
try fakeFetch(value: 1)
} catch MyError.BadValue(let msg) {
} catch MyError.badValue(let msg) {
print("Error message: \(msg)")
} catch {
// must be exhaustive
@@ -518,49 +518,49 @@ if let circle = myEmptyCircle {
// They can contain methods like classes.
enum Suit {
case Spades, Hearts, Diamonds, Clubs
case spades, hearts, diamonds, clubs
func getIcon() -> String {
switch self {
case .Spades: return "♤"
case .Hearts: return "♡"
case .Diamonds: return "♢"
case .Clubs: return "♧"
case .spades: return "♤"
case .hearts: return "♡"
case .diamonds: return "♢"
case .clubs: return "♧"
}
}
}
// Enum values allow short hand syntax, no need to type the enum type
// when the variable is explicitly declared
var suitValue: Suit = .Hearts
var suitValue: Suit = .hearts
// String enums can have direct raw value assignments
// or their raw values will be derived from the Enum field
enum BookName: String {
case John
case Luke = "Luke"
case john
case luke = "Luke"
}
print("Name: \(BookName.John.rawValue)")
print("Name: \(BookName.john.rawValue)")
// Enum with associated Values
enum Furniture {
// Associate with Int
case Desk(height: Int)
case desk(height: Int)
// Associate with String and Int
case Chair(String, Int)
case chair(String, Int)
func description() -> String {
switch self {
case .Desk(let height):
case .desk(let height):
return "Desk with \(height) cm"
case .Chair(let brand, let height):
case .chair(let brand, let height):
return "Chair of \(brand) with \(height) cm"
}
}
}
var desk: Furniture = .Desk(height: 80)
var desk: Furniture = .desk(height: 80)
print(desk.description()) // "Desk with 80 cm"
var chair = Furniture.Chair("Foo", 40)
var chair = Furniture.chair("Foo", 40)
print(chair.description()) // "Chair of Foo with 40 cm"

View File

@@ -443,47 +443,47 @@ if let daire = benimBosDairem {
// Sınıflar gibi metotlar içerebilirler.
enum Kart {
case Kupa, Maca, Sinek, Karo
case kupa, maca, sinek, karo
func getIcon() -> String {
switch self {
case .Maca: return "♤"
case .Kupa: return "♡"
case .Karo: return "♢"
case .Sinek: return "♧"
case .maca: return "♤"
case .kupa: return "♡"
case .karo: return "♢"
case .sinek: return "♧"
}
}
}
// Enum değerleri kısayol syntaxa izin verir. Eğer değişken tipi açık olarak belirtildiyse enum tipini yazmaya gerek kalmaz.
var kartTipi: Kart = .Kupa
var kartTipi: Kart = .kupa
// Integer olmayan enumlar direk değer (rawValue) atama gerektirir.
enum KitapAdi: String {
case John = "John"
case Luke = "Luke"
case john = "John"
case luke = "Luke"
}
print("Name: \(KitapAdi.John.rawValue)")
print("Name: \(KitapAdi.john.rawValue)")
// Değerlerle ilişkilendirilmiş Enum
enum Mobilya {
// Int ile ilişkilendirilmiş
case Masa(yukseklik: Int)
case masa(yukseklik: Int)
// String ve Int ile ilişkilendirilmiş
case Sandalye(String, Int)
case sandalye(String, Int)
func aciklama() -> String {
switch self {
case .Masa(let yukseklik):
case .masa(let yukseklik):
return "Masa boyu \(yukseklik) cm"
case .Sandalye(let marka, let yukseklik):
case .sandalye(let marka, let yukseklik):
return "\(brand) marka sandalyenin boyu \(yukseklik) cm"
}
}
}
var masa: Mobilya = .Masa(yukseklik: 80)
var masa: Mobilya = .masa(yukseklik: 80)
print(masa.aciklama()) // "Masa boyu 80 cm"
var sandalye = Mobilya.Sandalye("Foo", 40)
var sandalye = Mobilya.sandalye("Foo", 40)
print(sandalye.aciklama()) // "Foo marka sandalyenin boyu 40 cm"

View File

@@ -445,47 +445,47 @@ if let circle = myEmptyCircle {
// 枚举可以像类一样,拥有方法
enum Suit {
case Spades, Hearts, Diamonds, Clubs
case spades, hearts, diamonds, clubs
func getIcon() -> String {
switch self {
case .Spades: return "♤"
case .Hearts: return "♡"
case .Diamonds: return "♢"
case .Clubs: return "♧"
case .spades: return "♤"
case .hearts: return "♡"
case .diamonds: return "♢"
case .clubs: return "♧"
}
}
}
// 当变量类型明确指定为某个枚举类型时,赋值时可以省略枚举类型
var suitValue: Suit = .Hearts
var suitValue: Suit = .hearts
// 非整型的枚举类型需要在定义时赋值
enum BookName: String {
case John = "John"
case Luke = "Luke"
case john = "John"
case luke = "Luke"
}
print("Name: \(BookName.John.rawValue)")
print("Name: \(BookName.john.rawValue)")
// 与特定数据类型关联的枚举
enum Furniture {
// 和 Int 型数据关联的枚举记录
case Desk(height: Int)
case desk(height: Int)
// 和 String, Int 关联的枚举记录
case Chair(brand: String, height: Int)
case chair(brand: String, height: Int)
func description() -> String {
switch self {
case .Desk(let height):
case .desk(let height):
return "Desk with \(height) cm"
case .Chair(let brand, let height):
case .chair(let brand, let height):
return "Chair of \(brand) with \(height) cm"
}
}
}
var desk: Furniture = .Desk(height: 80)
var desk: Furniture = .desk(height: 80)
print(desk.description()) // "Desk with 80 cm"
var chair = Furniture.Chair(brand: "Foo", height: 40)
var chair = Furniture.chair(brand: "Foo", height: 40)
print(chair.description()) // "Chair of Foo with 40 cm"