07/09/2018, 15:38

Cơ bản với Swift Phần 1

Bài viết này mình sẽ trình bày những thứ cơ bản về cú pháp với Swift. Bài viết sẽ gồm các phần Phần 1 Hằng và Biến Ghi chú Dấu chấm phẩy Số (Integers) Số thập phân (Floating number) Phần 2 Type Safety và Type Inference Cách viết số (Numeric Literals) Bí danh kiểu dữ liệu (Type ...

Bài viết này mình sẽ trình bày những thứ cơ bản về cú pháp với Swift. Bài viết sẽ gồm các phần
Phần 1

  • Hằng và Biến
  • Ghi chú
  • Dấu chấm phẩy
  • Số (Integers)
  • Số thập phân (Floating number)

Phần 2

  • Type Safety và Type Inference
  • Cách viết số (Numeric Literals)
  • Bí danh kiểu dữ liệu (Type Aliases)
  • Kiểu Bool
  • Tuples

Phần 3

  • Optionals
  • Kiểm soát lỗi (Error Handling)
  • Gỡ rối (Debugging with Assertions)

Tương tự như đa số các ngôn ngữ lập trình khác, Swift cũng có các hằng và biến. Bên dưới là cách khai báo

let maxNumber = 100 // khai báo hằng
var currentNumber = 10 // khai báo biến

Ngoài ra, tương tự như trong C, bạn cũng có thể khai báo cùng lúc nhiều biến như sau:

var prevNumber = 0, currentNumber = 1, nextNumber = 2

Type Annotations

Khi khai báo biến, swift không yêu cầu bạn phải quy định kiểu dữ liệu, tuy nhiên bạn vẫn có thể quy định kiểu dữ liệu cho biến như sau

var welcomeMessage: String
welcomeMessage = "Hello Kipalog"

Tới đây chắc hẳn bạn sẽ đặt ra 1 câu hỏi là "Nếu như đã khai báo là string, thì có gán integer được không?"
Mình nghĩ chắc bạn nên tự tay kiểm tra lấy, vì swift là một ngôn ngữ khá mới, bạn cũng nên vọc 1 chút chứ nhỉ :smile:

Đặt tên biến và hằng
Tên hằng và biến không được chứa khoảng trắng, kí tự đặc biệt, ..v..v.. mà chỉ bao gồm số và chữ mà thôi.
Ngoài ra, khi đã khai báo một biến, bạn không thể khai báo lại một biến trùng tên với nó. Và bạn cũng không thể chuyển từ hằng sang biến và ngược lại, từ biến sang hằng.

var welcomeMessage = "Hello"
welcomeMessage = "Kipalog" // hoàn toàn hợp lệ

let welcome = "Hello"
welcome = "Kipalog" // lỗi, vì welcome ở đây là hằng

In biến và hằng ra màn hình
Bạn có thể dễ dàng in ra màn hình với hàm print
Ví dụ:

var welcomeMessage = "Hello Kipalog "
let welcome = "I'm Pham Quoc Thang"
print(welcomeMessage)
print(welcome)
print("Hello, (welcome)") // output: Hello, I'm Pham Quoc Thang

Bạn có thể tham khảo thêm tại đây: Link

Ví dụ:

// Ghi chú 1 dòng
/* ghi chú
nhiều dòng*/

Khác với ghi chú ở ngôn ngữ C, Swift cho phép các ghi chú lồng vào nhau

/* bắt đầu ghi chú nhiều dòng
/* đây là dòng thứ 2 */
và đây là dòng thứ 3, kết thúc của ghi chú dòng 1*/

Không giống nhiều ngôn ngữ khác, ở Swift không yêu cầu dấu chấm phẩy ở cuối mỗi câu lệnh. Chắc hẳn bạn cũng đã nhận ra từ các ví dụ bên trên mà mình viết. Tuy nhiên, dấu chấm phẩy được yêu cầu phải có nếu như bạn viết 2 câu lệnh trên dùng 1 dòng.
Ví dụ:

    let cat = "a cat"; print(cat)
    // prints "a cat"

Số nguyên là số không có thành phần phân đoạn (no fractional component) hay dễ hiểu là dấu chấm động hay phần thập phân giống như 23, -43
Số nguyên ở swift có signed và unsigned giống trong C.

  • Signed bao gồm số âm, số dương và số 0
  • Unsigned bao gồm số 0 và số dương

Swift cũng cung cấp kiểu dữ liệu số ở 8, 16, 32, 64 bit. Ví dụ: UInt8, Uint32

Max và Min
Bạn có thể truy xuất số lớn nhất và bé nhất của kiểu dữ liệu một cách dễ dàng như sau:

let maxNumber = UInt8.max // kết quả là 255 với kiểu dữ liệu Unsigned Integer 8-bit
let minNumber = UInt8.min // kết quả là 0 với kiểu dữ liệu Unsigned Integer 8-bit

Kiểu Int

  • Ở kiến trúc 32-bit, Int có cùng kích thước với Int32
  • Ở kiến trúc 64-bit, Int có cùng kích thước với Int64

Int có giá trị nằm trong khoảng -2,147,483,648 và 2,147,483,647

Kiểu UInt*

  • Ở kiến trúc 32-bit, Int có cùng kích thước với UInt32
  • Ở kiến trúc 64-bit, Int có cùng kích thước với UInt64
  • Double là kiểu dữ liệu số thập phân 64-bit
  • Float là kiểu dữ liệu số thập phân 32-bit

Bài viết được dịch từ: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID309
Lần đầu dịch nên chắc hẳn sẽ có sai sót, mong các bạn thông cảm và góp ý :smile:!

0