Để tạo một null QString
chỉ mặc định khởi tạo nó:
QString phoneNumber;
// or if you already have a QString variable and want to 'clear' it:
phoneNumber = QString();
Lưu ý rằng QString::number(0)
là decidedly không null - nó tạo ra một QString với giá trị "0"
.
Bạn cũng có thể khởi tạo QString
với con trỏ NULL
, nhưng tôi sẽ không khuyên bạn sử dụng trừ khi bạn đang chuyển con trỏ cho dù đó là NULL
hay không (nghĩa là đôi khi có thể trỏ đến chuỗi C). không cần thiết.
Bạn cũng nên hiểu được following Qt docs:
Phân biệt giữa Null và Strings Rỗng
Vì lý do lịch sử, QString
phân biệt giữa một chuỗi rỗng và một chuỗi rỗng. Chuỗi rỗng là một chuỗi được khởi tạo sử dụng hàm tạo mặc định của QString
hoặc bằng cách chuyển (const char *)0
tới hàm tạo. Một chuỗi rỗng là bất kỳ chuỗi với kích thước 0. Một rỗng chuỗi luôn luôn là trống rỗng, nhưng một chuỗi rỗng không nhất thiết phải là null:
QString().isNull(); // returns true
QString().isEmpty(); // returns true
QString("").isNull(); // returns false
QString("").isEmpty(); // returns true
QString("abc").isNull(); // returns false
QString("abc").isEmpty(); // returns false
Tất cả các chức năng trừ isNull()
trị chuỗi rỗng giống như trống chuỗi. Ví dụ: toAscii().constData()
trả về một con trỏ đến một ký tự '\0'
cho một chuỗi rỗng (không phải là một con trỏ rỗng) và QString()
so sánh bằng QString("")
. Chúng tôi khuyên bạn luôn sử dụng chức năng isEmpty()
và tránh isNull()
.
Nguồn
2012-03-15 17:43:23
Michael cảm ơn phản hồi của bạn, nhưng có một điều không rõ ràng với tôi - không str.clear() để trống chuỗi rỗng hoặc vô hiệu hóa. Nếu có sản phẩm nào có cách nào để vô hiệu hóa nó? – yatsa
'QString :: clear()' đặt chuỗi thành null (tức là, sau 'str.clear()', str.isNull() sẽ trả về 'true'). –