Swift - Các kiểu dữ liệu
Trong khi lập trình bằng bất kỳ ngôn ngữ lập trình nào, bạn cần sử dụng các loại biến khác nhau để lưu trữ thông tin. Các biến không là gì ngoài các vị trí bộ nhớ dành riêng để lưu trữ các giá trị. Điều này có nghĩa là khi bạn tạo một biến, bạn dự trữ một số không gian trong bộ nhớ.
Bạn có thể muốn lưu trữ thông tin của nhiều kiểu dữ liệu khác nhau như chuỗi, ký tự, ký tự rộng, số nguyên, dấu phẩy động, Boolean, v.v. Dựa trên kiểu dữ liệu của một biến, hệ điều hành phân bổ bộ nhớ và quyết định những gì có thể được lưu trữ trong phần dành riêng ký ức.
Các loại dữ liệu tích hợp
Swift 4 cung cấp cho lập trình viên nhiều loại dữ liệu tích hợp cũng như kiểu dữ liệu do người dùng xác định. Các loại kiểu dữ liệu cơ bản sau đây thường gặp nhất khi khai báo biến:
Int or UInt- Điều này được sử dụng cho các số nguyên. Cụ thể hơn, bạn có thể sử dụng Int32, Int64 để xác định số nguyên có dấu 32 hoặc 64 bit, trong khi UInt32 hoặc UInt64 để xác định các biến số nguyên không dấu 32 hoặc 64 bit. Ví dụ, 42 và -23.
Float- Điều này được sử dụng để biểu diễn một số dấu phẩy động 32 bit và các số có dấu thập phân nhỏ hơn. Ví dụ: 3,14159, 0,1 và -273,188.
Double- Điều này được sử dụng để biểu diễn một số dấu phẩy động 64 bit và được sử dụng khi các giá trị dấu phẩy động phải rất lớn. Ví dụ: 3,14159, 0,1 và -273.158.
Bool - Giá trị này đại diện cho một giá trị Boolean đúng hoặc sai.
String- Đây là một bộ sưu tập các ký tự có thứ tự. Ví dụ: "Hello, World!"
Character- Đây là một chuỗi ký tự đơn theo nghĩa đen. Ví dụ: "C"
Optional - Điều này đại diện cho một biến có thể giữ giá trị hoặc không có giá trị.
Tuples - Điều này được sử dụng để nhóm nhiều giá trị trong một Giá trị tổng hợp.
Chúng tôi đã liệt kê ở đây một vài điểm quan trọng liên quan đến kiểu Số nguyên -
Trên nền tảng 32-bit, Int có cùng kích thước với Int32.
Trên nền tảng 64-bit, Int có cùng kích thước với Int64.
Trên nền tảng 32-bit, UInt có cùng kích thước với UInt32.
Trên nền tảng 64-bit, UInt có cùng kích thước với UInt64.
Int8, Int16, Int32, Int64 có thể được sử dụng để đại diện cho các dạng 8 Bit, 16 Bit, 32 Bit và 64 Bit của số nguyên có dấu.
UInt8, UInt16, UInt32 và UInt64 có thể được sử dụng để biểu thị các dạng 8 Bit, 16 Bit, 32 Bit và 64 Bit của số nguyên không dấu.
Giá trị ràng buộc
Bảng sau đây cho thấy loại biến, cần bao nhiêu bộ nhớ để lưu giá trị trong bộ nhớ và giá trị lớn nhất và nhỏ nhất có thể được lưu trong loại biến đó là bao nhiêu.
Kiểu | Chiều rộng bit điển hình | Phạm vi điển hình |
---|---|---|
Int8 | 1byte | -127 đến 127 |
UInt8 | 1byte | 0 đến 255 |
Int32 | 4byte | -2147483648 đến 2147483647 |
UInt32 | 4byte | 0 đến 4294967295 |
Int64 | 8byte | -9223372036854775808 đến 9223372036854775807 |
UInt64 | 8byte | 0 đến 18446744073709551615 |
Phao nổi | 4byte | 1.2E-38 đến 3.4E + 38 (~ 6 chữ số) |
Gấp đôi | 8byte | 2.3E-308 đến 1.7E + 308 (~ 15 chữ số) |
Nhập bí danh
Bạn có thể tạo tên mới cho một loại hiện có bằng cách sử dụng typealias. Đây là cú pháp đơn giản để xác định một kiểu mới bằng cách sử dụng typealias:
typealias newname = type
Ví dụ: dòng sau hướng dẫn trình biên dịch rằng Feet là một tên khác của Int -
typealias Feet = Int
Bây giờ, khai báo sau là hoàn toàn hợp pháp và tạo ra một biến số nguyên được gọi là khoảng cách -
typealias Feet = Int
var distance: Feet = 100
print(distance)
Khi chúng tôi chạy chương trình trên bằng cách sử dụng sân chơi, chúng tôi nhận được kết quả sau.
100
Loại an toàn
Swift 4 là một ngôn ngữ an toàn về kiểu chữ, có nghĩa là nếu một phần mã của bạn yêu cầu một Chuỗi, bạn không thể chuyển nó thành Int do nhầm lẫn.
Vì Swift 4 là kiểu an toàn nên nó thực hiện kiểm tra kiểu khi biên dịch mã của bạn và gắn cờ bất kỳ kiểu không khớp nào là lỗi.
var varA = 42
varA = "This is hello"
print(varA)
Khi chúng tôi biên dịch chương trình trên, nó tạo ra lỗi thời gian biên dịch sau.
main.swift:2:8: error: cannot assign value of type 'String' to type 'Int'
varA = "This is hello"
Nhập suy luận
Suy luận kiểu cho phép trình biên dịch tự động suy ra kiểu của một biểu thức cụ thể khi nó biên dịch mã của bạn, đơn giản bằng cách kiểm tra các giá trị bạn cung cấp. Swift 4 sử dụng kiểu suy luận để tìm ra kiểu phù hợp như sau.
// varA is inferred to be of type Int
var varA = 42
print(varA)
// varB is inferred to be of type Double
var varB = 3.14159
print(varB)
// varC is also inferred to be of type Double
var varC = 3 + 0.14159
print(varC)
Khi chúng tôi chạy chương trình trên bằng sân chơi, chúng tôi nhận được kết quả sau:
42
3.14159
3.14159