Bài đăng nổi bật

Hướng dẫn thay đổi thư mục root mặc định của Docker trên Linux

Hoàn cảnh: người viết gặp một trường hợp như này Được team hạ tầng cấp cho một máy chủ gồm 2 phân vùng lưu trữ, 1 phân vùng 20GB được gắn và...

23 tháng 4, 2016

[Kinh nghiệm] Lập trình với Swift

Như bài trước mình có đưa ra ý kiến riêng về kinh nghiệm học lập trình một ngôn ngữ mới, đó là làm thế nào để tiếp xúc với ngôn ngữ lập trình mới một cách nhanh nhất, hiệu quả nhất. Có một nguyên tắc mình đưa ra đó là:

  • Học cách quản lý biến, bao gồm thêm cả mảng
  • Học cách quản lý Class, bao gồm Function và Property.
  • Học cách quản lý vòng lặp và lệnh rẽ nhánh.
Vì vậy trong bài viết này mình cũng sẽ chỉ bám theo đúng nguyên tắc này.
1. Biến trong Swift.
  • Để khai báo biến trong Swift ta sử dụng cấu trúc sau: var varName: =
    • Ví dụ: var varTest:Int = 0
    • Dấu <> ám chỉ là tùy chọn, bạn có thể dùng hay không khi khai báo biến.
    • Data type là kiểu dữ liệu của biến, nếu thiếu thì ứng dụng biên dịch sẽ tự quản lý kiểu giá trị cho biến.
    • Init value: là giá trị mặc định được gán khi khởi tạo biến.
  • Mảng:
    • Mảng được khai báo như sau: var arrayName = [type]()
    • Ví dụ: var arrayTest = [Int](count:3, repeatedValue:0) - Nghĩa là khai báo 1 mảng kiểu Int, bao gồm 3 phần tử, trong đó giá trị khởi tạo cho mỗi phần tử là 0.
    • Truy cập phần tử của mảng bằng cách sau: var item = arrayTest[index] - trong đó index bắt đầu từ 0.
    • Khai báo mảng với giá trị khởi tạo khác nhau: var arrayName:[Int] = [10,20,30]
    • Khi gán mảng cho biến thì mảng là mảng động, gán mảng cho hằng thì mảng là mảng tĩnh.
    • Để thêm giá trị vào mảng ta dùng hàm append hoặc sử dụng toán tử +=.
    • Để duyệt mảng ta dùng vòng lặp for ... in ....
    • Để duyệt mảng lấy cả chỉ số ta dùng hàm enumerate
    • Có thể gộp 2 mảng bằng toán tử +
    • Có thể đếm số phần tử trong mảng bằng hàm count.
    • Có thể kiểm tra mảng có rỗng hay không bằng hàm empty.
2. Lệnh rẽ nhánh trong Swift:
Swift bao gồm các mẫu rẽ nhánh sau:
3. Vòng lặp trong Swift
Swift bao gồm các mẫu lặp sau:
  • for ... in ...: lặp lại trên từng phần tử của một tập. Xem thêm
  • for loop: lặp lại khi điều kiện còn đúng. Xem thêm
  • while loop: xem thêm
  • do statement while: xem thêm
Với các mẫu lặp, Swift sẽ có các lệnh điều khiển sau:
  • break: ngắt vòng lặp.
  • continue: bỏ qua các lệnh phía sau và quay trở lại với vòng lặp kế tiếp.
4. Class trong Swift
Với một class:
  • Để khai báo một class ta dùng cấu trúc sau: Class className{}
  • Để khởi tạo một class ta dùng cấu trúc sau: let varClass = className()
Với các thuộc tính trong class:
  • Để khai báo một biến ta dùng từ khóa var.
  • Để khai báo một hằng ta dùng từ khóa let.
  • Ngoài ra còn một kiểu khai báo biến là lazy. Kiểu này dùng để khởi tạo các thuộc tính mà giá trị của nó còn phụ thuộc vào một thuộc tính của một đối tượng khác, vì thế nên nó chưa cần được khởi tạo ngay khi khởi tạo object.
  • Để truy cập thuộc tính của class ta dùng cấu trúc sau varClass.property
  • getter và setter:
    • Trong Swift để tạo một biến getter setter ta dùng cấu trúc sau:
      var varName:[type]{
           get{
               return();
           }
           set(param){
           }
      }
    • Xem thêm
  • getter:
    • Trong Swift có một kiểu biến chỉ có getter. Kiểu này hơi đặc biệt tí, có thể hiểu nó hao hao giống cấu trúc JSON trong javascript.
    • Bạn có thể tìm hiểu thêm tại đây, phần Readonly properties
Với hàm trong class:
  • Cấu trúc khai báo sẽ là:
    func funcName(params) -> returnType{
        statement
        return something;
    }
  • params được khai báo như khai báo biến thông thường.