Site logo
Authors
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Published on
Published on

Tìm hiểu các khái niệm cơ bản trong Swift

Biến và Hằng

  • Biến (var): Là những giá trị có thể thay đổi trong quá trình chạy của chương trình.

  • Hằng (let): Là giá trị không thể thay đổi sau khi đã gán.

  • Ví dụ :

var age = 25   // Biến, có thể thay đổi
let name = "John" // Hằng, không thể thay đổi

Kiểu Dữ Liệu

Swift cung cấp các kiểu dữ liệu phổ biến như:

  • Số nguyên: Int, UInt

  • Số thực: Float, Double

  • Chuỗi: String

  • Boolean: Bool

  • Tùy chọn: Optional (có giá trị hoặc không)

  • Ví dụ :

let score = 95 // Int
let year: Int = 2024 // Int
let pi: Double = 3.14159 // Double
let isStudent: Bool = true // Bool
let  greeting: String = "Hello, Swift!"

Toán tử(Operator)

  • Toán tử số học: +, -, *, /, %
  • Toán tử so sánh: ==, !=, <, >, <=, >=
  • Toán tử logic: && (và), || (hoặc), ! (phủ định)
  • Toán tử gán: =, +=, -=, *=, /=
  • Toán tử hợp nhất: ??:

Tìm hiểu chi tiết hơn tại đây: Toán tử trong Swift

Optional và Optional Binding

  • Optionals : Dùng để biểu diễn một giá trị có thể tồn tại hoặc có thể không. Swift sử dụng dấu ? để khai báo một biến là optional.

  • Optional Binding : Được dùng để "unwrap" một optional một cách an toàn.

  • Ví dụ :

var name: String? = "Alice" // Biến optional

// Optional Binding
if let actualName = name {
    print("Tên là \(actualName)")
} else {
    print("Không có tên")
}

Cấu Trúc Điều Khiển

  • If-Else : Dùng để kiểm tra điều kiện.

  • Switch : Một cách tiện lợi để xử lý nhiều trường hợp của một giá trị. Switch trong Swift rất mạnh mẽ, hỗ trợ so khớp mẫu và bắt buộc phải bao quát tất cả các trường hợp.

  • Ví dụ :

let score = 85

if score >= 90 {
    print("Loại A")
} else if score >= 80 {
    print("Loại B")
} else {
    print("Cần cải thiện")
}

switch score {
case 90...100:
    print("Loại A")
case 80..<90:
    print("Loại B")
default:
    print("Cần cải thiện")
}

Vòng Lặp

  • Swift hỗ trợ các vòng lặp for, while, và repeat-while giúp thực thi một khối mã nhiều lần.

  • Ví dụ :

let numbers = [1, 2, 3, 4, 5]
for number in numbers {
    print(number)
}

var count = 1
while count <= 5 {
    print(count)
    count += 1
}

Hàm

  • Hàm (function) là khối mã thực hiện một tác vụ nhất định, có thể có tham số và trả về giá trị.

  • Ví dụ :

func greet(name: String) -> String {
    return "Xin chào, \(name)!"
}
print(greet(name: "Alice"))

Mảng(Array)

  • Mảng(Array) là 1 tập hợp các giá trị cùng kiểu.
  • Các truy cập: Sử dụng chỉ số để truy cập phần tử.
let numbers = [1, 2, 3, 4, 5]
print(numbers[2]) // In ra 3

Dictionary

  • Dictionary là tập hợp các cặp khóa-giá trị.
let person: [String: String] = ["name": "John", "age": "30"]

Lớp và Cấu Trúc

  • Swift hỗ trợ cả lớp (class) và cấu trúc (struct). Cả hai đều có thể chứa thuộc tính và phương thức, nhưng chúng có một số điểm khác nhau cơ bản: lớp là kiểu tham chiếu (reference type), còn cấu trúc là kiểu giá trị (value type).

  • Ví dụ :

struct Person {
    var name: String
    var age: Int
    
    func greet() {
        print("Xin chào, \(name)!")
    }
}

let person1 = Person(name: "Alice", age: 30)
person1.greet()

Closures

  • Closures là các khối mã có thể lưu trữ và truyền đi như là biến. Chúng giống như hàm nhưng không có tên, và rất tiện lợi cho việc truyền vào các hàm khác.

  • Ví dụ :

let sayHello = { (name: String) in
    print("Hello, \(name)!")
}

sayHello("Alice")

Enumerations (Enum)

  • enum là một kiểu dữ liệu cho phép bạn định nghĩa một nhóm các giá trị liên quan, rất hữu ích trong việc tổ chức các lựa chọn hoặc trạng thái cụ thể.

  • Ví dụ :

enum Direction {
    case north
    case south
    case east
    case west
}

let currentDirection = Direction.north
switch currentDirection {
case .north:
    print("Đi về phía Bắc")
default:
    print("Đi hướng khác")
}

Extensions

  • Extensions cho phép bạn mở rộng chức năng của các kiểu dữ liệu hiện có, thêm phương thức, thuộc tính tính toán (computed properties) hoặc khởi tạo mới.

  • Ví dụ :

extension Int {
    func squared() -> Int {
        return self * self
    }
}

let number = 5
print(number.squared()) // In ra 25

Kết Luận

Các khái niệm cơ bản trong Swift như biến, hằng, kiểu dữ liệu, cấu trúc điều khiển, và hàm cung cấp nền tảng cần thiết để bạn xây dựng các ứng dụng iOS mạnh mẽ và hiệu quả. Nắm vững các khái niệm này là bước đầu tiên để thành công trong phát triển ứng dụng với Swift. Hãy thực hành viết mã thường xuyên và tìm hiểu thêm các khái niệm nâng cao để trở thành một lập trình viên Swift chuyên nghiệp!