Trong Objective-C, một “structure” thường được gọi là “struct” và được sử dụng để đóng gói một nhóm các biến có các kiểu dữ liệu cơ bản lại với nhau. Tuy nhiên, nó không được sử dụng rộng rãi như lớp (class) trong lập trình hướng đối tượng Objective-C. Dưới đây là một tổng quan về cách sử dụng struct trong Objective-C:
Mục Lục
1. Khai Báo Struct:
Khai báo một struct giống như sau:
struct MyStruct {
int age;
float height;
NSString *name;
};
2. Khởi Tạo và Truy Cập Đối Tượng Struct:
// Khởi tạo một đối tượng struct
struct MyStruct person;
// Gán giá trị cho các trường
person.age = 25;
person.height = 175.5;
person.name = @"John Doe";
// Truy cập giá trị
NSLog(@"Age: %d, Height: %.1f, Name: %@", person.age, person.height, person.name);
3. Typedef cho Struct:
Để làm cho cú pháp đặt tên struct trở nên thuận tiện hơn, bạn có thể sử dụng typedef
:
typedef struct {
int age;
float height;
NSString *name;
} MyStruct;
Sau đó, bạn có thể sử dụng MyStruct
như một kiểu dữ liệu:
MyStruct person;
person.age = 30;
// ...
4. Tính Đóng Gói Dữ Liệu:
Structs thường được sử dụng để đóng gói các trường dữ liệu có liên quan với nhau vào một đối tượng đơn.
5. Không Hỗ Trợ Kế Thừa và Đa Hình:
Khác với lớp, struct không hỗ trợ tính kế thừa và đa hình.
6. Sử Dụng Struct Trong Lớp:
Struct có thể được sử dụng như một thành phần của một lớp:
@interface MyObject : NSObject
@property (nonatomic, assign) MyStruct myStruct;
@end
7. Swift và Struct:
Trong ngôn ngữ lập trình Swift, struct được sử dụng phổ biến hơn và có nhiều tính năng mạnh mẽ hơn so với Objective-C.
struct Person {
var age: Int
var height: Float
var name: String
}
var person = Person(age: 25, height: 175.5, name: "John Doe")
Tóm lại, trong Objective-C, struct thường được sử dụng khi cần đóng gói một số biến có kiểu dữ liệu cơ bản vào một đối tượng đơn. Tuy nhiên, khi làm việc với lập trình hướng đối tượng, lớp (class) thường được ưu tiên hơn.
Xin chào,
Bài viết này sử dụng AI ChatGPT để viết sau đó được lựa chọn, biên tập lại nội dung, chỉ một phần nhỏ các bài là tôi tự viết. Nội dung thể hiện ý chí cá nhân về các vấn đề, giải pháp. Tôi lưu tại website này để học, tra cứu và chia sẻ.
Tôi là Minh, sống tại Hà Nội, kỹ sư phần mềm với hơn 20 năm kinh nghiệm. Các ngôn ngữ yêu thích của tôi là Swift, Objective-C, Java, Kotlin, .NET, HTML, JavaScript, CSS, Bootstrap, jQuery, AngularJS, Angular…
Các bạn có thể tải app của tôi trên App Store hoặc Google Play:
QuestionBank-Ôn thi vào 10: phiên bản iOS, phiên bản Android
TypingTest by QuestionBank: phiên bản iOS, phiên bản Android
Xin cảm ơn,
Minh