Sobes.tech
Intern

Jakie są typy danych w Swift?

sobes.tech AI

Odpowiedź od AI

W Swift główne typy danych obejmują:

  1. Typy całkowite: Int, UInt, Int8, UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64. Int i UInt mają rozmiar zależny od aktualnej platformy (zazwyczaj 32 lub 64 bity).

  2. Typy zmiennoprzecinkowe: Float (reprezentuje 32-bitową liczbę zmiennoprzecinkową), Double (reprezentuje 64-bitową liczbę zmiennoprzecinkową, preferowany wybór w większości przypadków).

  3. Typ logiczny: Bool. Może przyjmować wartości true lub false.

  4. Typ łańcuchowy: String. Zawiera ciąg znaków.

  5. Typ znakowy: Character. Reprezentuje pojedynczy znak Unicode.

  6. Kolekcje:

    • Tablice (Array): Uporządkowana kolekcja elementów tego samego typu.
    • Zbiory (Set): Nieuporządkowana kolekcja unikalnych elementów tego samego typu.
    • Słowniki (Dictionary): Nieuporządkowana kolekcja par klucz-wartość, gdzie klucze są unikalne i mają jeden typ, a wartości inny typ.
  7. Typy opcjonalne (Optional): Reprezentują wartość określonego typu lub brak wartości (nil). Są oznaczane przez dodanie ? lub ! do typu.

  8. Krotki (Tuple): Pozwalają grupować wiele wartości w jeden typ złożony. Typy wartości w krotce mogą być różne.

  9. Wyliczenia (Enums): Pozwalają zdefiniować grupę powiązanych wartości.

  10. Struktury (Struct): Typy wartościowe. Nadają się do modelowania danych.

  11. Klasy (Class): Typy referencyjne. Nadają się do modelowania złożonych obiektów i hierarchii.

Przykłady:

// Int
let age: Int = 30

// Double
let price: Double = 19.99

// Bool
let isAvailable: Bool = true

// String
let name: String = "Alice"

// Array
let numbers: [Int] = [1, 2, 3]

// Dictionary
let person: [String: Any] = ["name": "Bob", "age": 25]

// Optional Int
var optionalInt: Int? = nil

// Tuple
let coordinates = (x: 10, y: 20)

// Enum
enum Status {
    case active
    case inactive
}
let currentStatus: Status = .active

// Struct
struct Point {
    var x: Int
    var y: Int
}
let myPoint = Point(x: 5, y: 10)

// Class
class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}
let newPerson = Person(name: "Charlie")