Trong hướng dẫn này, bạn sẽ tìm hiểu về các kiểu dữ liệu khác nhau mà ngôn ngữ lập trình Swift hỗ trợ và sử dụng nó trong khi tạo một biến hoặc một hằng số.
Kiểu dữ liệu là kiểu dữ liệu (giá trị) mà một biến hoặc hằng số có thể lưu trữ trong đó. Ví dụ, trong bài viết Swift Variables and Constants, bạn đã tạo một biến và một hằng số để lưu trữ dữ liệu chuỗi trong bộ nhớ.
Dữ liệu này có thể là một văn bản / chuỗi ("Xin chào") hoặc một số (12,45) hoặc chỉ các bit (0 & 1). Việc xác định kiểu dữ liệu đảm bảo chỉ lưu trữ kiểu dữ liệu đã xác định.
Hãy xem xét một kịch bản:
Giả sử bạn muốn tạo một trò chơi. Vì hầu hết các trò chơi đều hiển thị điểm số cao và tên người chơi sau khi trò chơi hoàn thành, bạn cần lưu trữ hai dữ liệu này cho trò chơi của mình.
Điểm cao là một số (ví dụ 59) và tên của người chơi là một chuỗi (ví dụ: Jack). Bạn có thể tạo hai biến hoặc hằng số để lưu trữ dữ liệu.
Trong Swift, điều này có thể được thực hiện bằng cách khai báo các biến và kiểu dữ liệu là:
var highScore: Int = 59 var playerName: String = "Jack"
Ở đây, chúng tôi đã khai báo biến highScore thuộc loại Int
lưu trữ giá trị 59. Và, biến playerName thuộc loại String
lưu trữ giá trị Jack.
Tuy nhiên, nếu bạn làm như thế này:
var highScore: Int = "Jack"
Bạn sẽ gặp lỗi thời gian biên dịch cho biết không thể chuyển đổi giá trị của kiểu 'Chuỗi' thành kiểu được chỉ định 'Int' .
Đó là do bạn đã khai báo điểm cao để lưu trữ giá trị số nguyên nhưng lại đặt chuỗi trong đó. Lỗi này đảm bảo rằng điểm cao chỉ có thể lưu trữ một số chứ không phải tên của người chơi.
Kích thước của một loại dữ liệu
Một phần quan trọng khác của kiểu dữ liệu là kích thước của nó. Điều này chỉ định kích thước của dữ liệu có thể được lưu trữ trong một biến hoặc hằng số nhất định.
Một Loại của kích thước được đo về bit và có thể lưu trữ các giá trị tối đa 2 bit . Nếu bạn không biết về Bit, hãy nghĩ về nó như một giá trị bằng 0 hoặc 1.
Vì vậy, đối với Type size = 1 bit, nó chỉ có thể lưu trữ tối đa, 2 1 = 2, hai giá trị: hoặc 0 hoặc 1. Vì vậy, hệ thống 1 bit cho chương trình chữ cái có thể hiểu 0 là a / 0 và 1 là b / 1,0.
0 -> a hoặc 0 1 -> b hoặc 1
Tương tự như vậy, hệ thống hai bit có thể lưu trữ tối đa 2 2 = 4 giá trị: (00,01,10,11) và mỗi kết hợp có thể được biểu diễn dưới dạng:
00 -> a hoặc 0 01 -> b hoặc 1 11 -> c hoặc 2 10 -> d hoặc 3
Đối với một hệ thống bit, nó có thể lưu trữ tối đa 2 n giá trị trong đó.
Các kiểu dữ liệu Swift
Các loại dữ liệu phổ biến nhất được sử dụng trong swift được liệt kê dưới đây:
Bool
- Biến / Hằng số được khai báo kiểu Bool chỉ có thể lưu trữ hai giá trị hoặc
true
hoặcfalse
. - Giá trị mặc định : false
- Nó thường được sử dụng khi bạn làm việc với
if-else
câu lệnh. Swift if else bài viết trình bày chi tiết về nó.
Ví dụ 1: Kiểu dữ liệu Boolean
let result:Bool = true print(result)
Khi bạn chạy chương trình, đầu ra sẽ là:
thật
Số nguyên
- Biến / Hằng số được khai báo kiểu số nguyên có thể lưu trữ số nguyên cả số dương và số âm, bao gồm cả số 0 mà không có thành phần phân số.
- Giá trị mặc định : 0
- Kích thước : 32/64 bit tùy thuộc vào loại nền tảng.
- Phạm vi : -2,147,483,648 đến 2,147,483,647 (nền tảng 32 bit)
-9223372036854775808 đến 9223372036854775807 (nền tảng 64 bit - Có nhiều biến thể của kiểu Số nguyên
UInt
, tức làInt8
,Int16
v.v. Loại phổ biến nhất mà bạn sử dụng làInt
. - Nếu bạn có một yêu cầu để xác định kích thước / loại nguyên một biến / hằng số có thể giữ, bạn có thể lưu nó đặc biệt hơn là sử dụng
UInt
,Int8
,Int16
vv mà chúng ta sẽ khám phá dưới đây.
Ví dụ 2: Kiểu dữ liệu số nguyên
var highScore:Int = 100 print(highScore) highScore = -100 print(highScore)
Khi bạn chạy chương trình, đầu ra sẽ là:
100-100
Trong ví dụ trên, chúng tôi đã khai báo một biến kiểu highScore Int
. Đầu tiên, chúng tôi gán nó với giá trị 100 để print(highScore)
xuất ra 100 trên màn hình.
Sau đó, chúng tôi đã thay đổi giá trị thành -100 bằng cách sử dụng toán tử gán highScore = -100
, print(highScore)
kết quả là -100 trên màn hình.
Hãy cùng khám phá một số biến thể của Int
kiểu trong Swift.
Int8
- Biến thể của loại Số nguyên có thể lưu trữ cả số nhỏ âm và dương.
- Giá trị mặc định : 0
- Kích thước : 8 bit
- Phạm vi : -128 đến 127
Một Int8
số nguyên có thể lưu trữ tổng cộng 2 8 = (256) giá trị trong đó. tức là nó có thể lưu trữ các số từ 0 đến 255 phải không?
Ừ bạn đúng rồi đó. Nhưng vì, Int8
bao gồm cả số dương và số âm, nên chúng tôi có thể lưu trữ các số từ -128 đến 127, bao gồm cả 0 có tổng là 256 giá trị hoặc số.
var highScore:Int8 = -128//ok highScore = 127 //ok highScore = 128 // error here highScore = -129 //error here
Bạn cũng có thể tìm ra giá trị cao nhất và thấp nhất mà một kiểu có thể lưu trữ bằng cách sử dụng .min
và tích .max
hợp trong các hàm Swift.
Ví dụ 3: Kiểu dữ liệu Int8 tối đa và tối thiểu
print(Int8.min) print(Int8.max)
Khi bạn chạy chương trình, đầu ra sẽ là:
-128 127
UInt
- Biến thể của kiểu Số nguyên được gọi là UInt (Số nguyên không dấu) chỉ có thể lưu trữ các số không dấu (dương hoặc 0).
- Giá trị mặc định : 0
- Kích thước : 32/64 bit tùy thuộc vào loại nền tảng.
- Phạm vi : 0 đến 4294967295 (nền tảng 32 bit)
0 đến 18446744073709551615 (nền tảng 64 bit)
Ví dụ 4: Kiểu dữ liệu UInt
var highScore:UInt = 100 highScore = -100//compile time error when trying to
Đoạn mã trên sẽ cung cấp cho bạn lỗi thời gian biên dịch vì Số nguyên chưa được ký chỉ có thể lưu trữ giá trị 0 hoặc giá trị dương. Cố gắng lưu trữ giá trị âm trong Số nguyên chưa được ký sẽ gây ra lỗi cho bạn.
Phao nổi
- Biến hoặc Hằng được khai báo kiểu float có thể lưu trữ số với dấu thập phân hoặc phân số.
- Giá trị mặc định : 0.0
- Kích thước : 32 bit số dấu phẩy động.
- Phạm vi : 1,2 * 10 -38 đến 3,4 * 10 38 (~ 6 chữ số)
Ví dụ 5: Kiểu dữ liệu float
let highScore:Float = 100.232 print(highScore)
Khi bạn chạy chương trình, đầu ra sẽ là:
100.232
Gấp đôi
- Biến / Hằng được khai báo kiểu Double cũng lưu trữ số với dấu thập phân hoặc phân số dưới dạng Float nhưng dấu thập phân lớn hơn hỗ trợ Float.
- Giá trị mặc định : 0.0
- Size: 64-bit floating point number. (Therefore, a variable of type Double can store number with decimal or fraction points larger than Float supports)
- Range: 2.3*10-308 to 1.7*10308 (~15 digits)
Example 6: Double data type
let highScore:Double = 100.232321212121 print(highScore)
When you run the program, the output will be:
100.232321212121
Character
- Variables/Constants declared of Character type can store a single-character string literal.
- You can include emoji or languages other than english as an character in Swift using escape sequence u(n) (unicode code point ,n is in hexadecimal).
Example 7: Character data type
let playerName:Character = "J" let playerNameWithUnicode:Character = "u(134)" print(playerName) print(playerNameWithUnicode)
When you run the program, the output will be:
J Ĵ
String
- Variables or Constants declared of String type can store collection of characters.
- Default Value: "" (Empty String)
- It is Value type. See Swift value and Reference Type .
- You can use for-in loop to iterate over a string. See Swift for-in loop.
- Swift also supports a few special escape sequences to use them in string. For example,