Làm thế nào tôi có thể giải thích sự khác biệt giữa NULL và zero?


59

Làm việc trên một vấn đề sử dụng công thức thay đổi phần trăm:

percent change =  100 * [(new value - old value) / old value]

Làm thế nào tôi có thể giải thích sự khác biệt nếu new value or old value = NULL, hơn là 0với một người không phải là lập trình viên?

Ông chủ của tôi đang tự hỏi tại sao có một chuỗi trống trong TextBox chứ không phải là một giá trị, bởi vì chúng tôi có giá trị cũ, nhưng không phải là giá trị mới.


11
"Làm thế nào tôi sẽ giải thích sự khác biệt"? Trong ngôn ngữ nào? Một số ngôn ngữ ném (hoặc nâng cao) một ngoại lệ. Một số sẽ trả về kết quả NULL. Một số phụ thuộc vào các chi tiết về cách thực hiện NULL. Bạn phải cụ thể hơn nhiều.
S.Lott

29
Thay đổi hộp văn bản để nói "Dữ liệu không khả dụng" thay vì chuỗi trống.
Craig

3
@ZJR - vì vậy hiển thị thông báo màu đỏ bên dưới hộp. Điểm là, "NULL" hoặc một chuỗi rỗng có nhiều sử dụng trong giao diện người dùng như địa chỉ bộ nhớ của một đối tượng.
gièm pha

10
Bằng cách tương tự, nhiệt độ 0 độ và Không đọc nhiệt độ là những tình huống khác nhau ...
NWS

4
Bây giờ tôi không thể trả lời rằng nó được bảo vệ, nhưng tôi luôn giải thích đó NULLtrạng thái , không phải giá trị - điều đó có nghĩa là bạn không biết giá trị. Đối với SQL tôi thường sử dụng sự tương tự của bên để chứng minh.
JNK

Câu trả lời:


101

Để giải thích cho sếp sự khác biệt giữa "không" và "null":

"Không" là một giá trị. Đây là số lượng duy nhất, được biết bằng 0, có ý nghĩa trong số học và toán học khác.

"Không" là một giá trị không. Đó là "giữ chỗ" cho một giá trị dữ liệu không được biết hoặc không được chỉ định. Nó chỉ có ý nghĩa trong bối cảnh này; Các phép toán không thể được thực hiện trên null (kết quả của bất kỳ thao tác nào như vậy là không xác định, và do đó cũng thường được biểu diễn dưới dạng null).

Ví dụ, như trong các bình luận: "Thu nhập hàng năm của bạn là bao nhiêu?" là một câu hỏi yêu cầu một câu trả lời số. "0" là câu trả lời hoàn toàn hợp lệ cho người không làm việc và không có thu nhập đầu tư. Nếu người dùng hoàn toàn không nhập một giá trị, họ không nhất thiết không kiếm được tiền; họ chỉ không muốn nói cho phần mềm của bạn biết họ kiếm được bao nhiêu (hoặc ít). Đó là một ẩn số, không được chỉ định; do đó, để cho phép phần mềm tiếp tục, bạn chỉ định trình giữ chỗ "null" cho trường dữ liệu đó trong phần mềm. Đó là giá trị kỹ thuật từ góc độ dữ liệu; việc nó có hợp lệ ở cấp độ kinh doanh hay không phụ thuộc vào việc có cần một giá trị số thực tế (thậm chí bằng không) để thực hiện một phép toán (như tính thuế hoặc so sánh với ngưỡng xác định lợi ích).

Trong máy tính, hầu như mọi thao tác trên biến chứa null sẽ dẫn đến null hoặc trong điều kiện lỗi, vì không biết một trong các giá trị của biến, nên không thể biết được kết quả của biểu thức. Tương đương với việc thực hiện toán học trên null sẽ là nếu tôi hỏi bạn "Năm điểm cộng với con số tôi đang nghĩ đến là gì?". Bạn không thể đưa ra câu trả lời chắc chắn vì bạn không biết con số tôi đang nghĩ đến. Một hoạt động trên số không, ngoại trừ việc chia cho nó, thường hợp lệ và sẽ trả về một giá trị duy nhất, đã biết khác.


37
"Giữ chỗ" là một mô tả hữu ích. Nếu bạn đã thực hiện một cuộc khảo sát và hỏi "bạn bao nhiêu tuổi?" Và ai đó đã bỏ qua câu hỏi đó, bạn KHÔNG nên trình bày câu trả lời đó là 0. Điều đó tạo ra một giả định (có thể sai). Các đại diện chính xác sẽ là NULL.
Nathan Long

Vì vậy, chúng ta có thể nói đơn giản rằng NULL là một trình giữ chỗ trong bộ nhớ với kiểu dữ liệu không xác định.Right?
Maxood

1
@Maxood - Nó phụ thuộc vào ngôn ngữ lập trình. Tôi sẽ xem xét một biến số nguyên được phép là null (sử dụng cú pháp?) Và được đặt thành null để không có giá trị nguyên được biết đến. Loại dự kiến ​​được biết đến, vì vậy để nói nó không được xác định, người ta có thể xem xét không chính xác 100%. Thật đúng khi nói rằng null không có giá trị hoặc loại. Cá nhân tôi sẽ nói rằng loại null hoặc NULL không được xác định tùy thuộc vào ngữ cảnh và ngôn ngữ bạn sử dụng. Trong C #, điều đó có nghĩa đơn giản là tham chiếu đến đối tượng sẽ không được xác định.
Ramhound

NULLlà LACK dữ liệu bùng nổ, nó không phải là một trình giữ chỗ, nó là một đại diện đơn độc không có dữ liệu.

Thuật ngữ "giữ chỗ" đã có trong câu trả lời này kể từ khi nó được đăng lần đầu tiên và tôi sẽ không thay đổi nó ngay bây giờ. Các chỉnh sửa đã trả lại câu hỏi này là để làm rõ các điểm khác trong phần giải thích. Như được thực hiện trong hầu hết các ngôn ngữ, nó thực sự là một "giữ chỗ"; một vị trí dành riêng trong bộ nhớ tại địa chỉ 0 tồn tại trong cấu trúc của chương trình với mục đích rõ ràng là được "tham chiếu" bởi các con trỏ bộ nhớ để chỉ ra rằng chúng chỉ ra không có gì hữu ích. Đó là nhiều hơn OP sẽ cần nói với ông chủ của mình.
KeithS

172

Boss-speak luôn khó khăn ...

Số không là một con số để bạn có thể làm mọi thứ với nó.

Null là một con kỳ lân. Nó không tồn tại nên bạn không thể làm bất cứ điều gì với nó.


45
+1 cho kỳ lân! Tôi phải thêm: giải thích rất tốt.
BЈовић

14
Tôi có thể phải bắt đầu đưa vào các truy vấn của mình : NVL(somefield,'UNICORN');)
Thất vọngWithFormsDesigner

11
Sau đó, ông chủ có thể chỉ hỏi "Tại sao chúng ta không làm cho nó 0 để chúng ta có thể làm mọi thứ với nó? Null nghe có vẻ vô dụng."
AlbeyAmakiir

26
@AlbeyAmakiir - Câu trả lời chính xác cho một ông chủ như vậy sẽ là "Trong khi chúng ta giả vờ biết những điều chúng ta không biết, tại sao chúng ta không kiếm được 1 triệu? Thật tuyệt và lớn."
Nathan Long

12
Tôi không thể tin rằng điều này đã nhận được hơn 90 phiếu bầu. Tôi sẽ bắt đầu đưa kỳ lân vào tất cả các câu trả lời của mình.
Morons

38

Chỉ cần viết lại các phương trình thành câu:

"Tỷ lệ phần trăm thay đổi là gì nếu bạn bắt đầu với một giá trị không xác định và bạn kết thúc với 150?"

"Phần trăm thay đổi là gì nếu bạn bắt đầu với 85 và bạn kết thúc với một số giá trị không xác định ?"

Tất nhiên, câu trả lời cho cả hai là "Không thể tính được, vì một trong những phần quan trọng của phép tính bị thiếu." Đó là bản chất của 'null'.

Sau đó, thật dễ dàng để tìm ra các câu tương đương với số 0 và xem chúng khác nhau về cơ bản như thế nào:

"Tỷ lệ phần trăm thay đổi là gì nếu bạn bắt đầu bằng 0 và bạn kết thúc với 150?"

"Tỷ lệ phần trăm thay đổi là gì nếu bạn bắt đầu với 85 và kết thúc bằng 0?"

Mặc dù các câu trả lời có thể không có nhiều ý nghĩa (với số không), nhưng ít nhất nó có thể được tính toán . Với null, tính toán thậm chí không thể .


2
+1 "Unknown" chắc chắn là một lời giải thích tuyệt vời và rất dễ để giải thích trong câu.
Scott Rippey

@ScottRippey - Tôi sẽ lập luận rằng giá trị không unknownđơn giản là nó không tồn tại bởi vì trong trường hợp NULLtỷ lệ phần trăm thực sự không có giá trị bằng số (phần trăm) hoặc giá trị phần trăm.
Ramhound

2
@Ramhound Đây là những gì tôi đã cố gắng hiểu, trong bối cảnh của câu hỏi ban đầu: "Unknown" đại diện cho "giữ chỗ" trong câu trả lời của KiethS, mà tôi nghĩ là một lời giải thích tuyệt vời. Đối với một ông chủ không phải lập trình viên, điều đó có nghĩa là có thể có một giá trị ngoài kia ở đâu đó, nhưng chúng tôi không có nó (trong cơ sở dữ liệu, hệ thống, biểu mẫu, v.v.). Có một giá trị? Chúng ta không có đủ thông tin để biết, bằng cách này hay cách khác. Dữ liệu bị thiếu. Đó là một ý nghĩa khác biệt tinh tế hơn không có gì , mà không có giá trị để có được . Tùy thuộc vào bối cảnh của cuộc thảo luận, một trong hai lời giải thích có thể đúng.
Eric King

20

Khi nói chuyện với ông chủ của bạn, chỉ cần sử dụng 0cho số không và ?cho null. Nó nắm bắt chính xác rằng đó là một trình giữ chỗ cho một cái gì đó nhưng bạn không biết nó là gì.


? rực rỡ, đơn giản và truyền đạt khái niệm rõ ràng cho giáo dân.
nelaaro

12

Còn cái này thì sao:

  • 0 câu trả lời cho "có bao nhiêu chất lỏng trong một chai rỗng?".
  • NULL câu trả lời cho "nội dung của một chai rỗng là gì?".

Hoặc nếu bạn tưởng tượng một người đàn ông không có con:

  • số con của anh ấy là 0
  • đứa con lớn nhất của anh ấy là NULL

Sự khác biệt cơ bản 0là về số lượng có thể đo được, trong khi đó NULLlà về sự tồn tại. Là một 0đại lượng, đại diện cho một cái gì đó , tức là một đại lượng, nghĩa là 0giống như 0.000000001đại diện cho một đại lượng (một trong những vấn đề của cuộc sống hàng ngày trên thực tế gần như không thể phân biệt được 0). Ngược lại với điều đó khôngNULL đại diện cho điều gì . Trong thực tế không có gì gần gũi NULL. Bất kỳ giá trị (và biểu thức) của biến là một NULLhoặc một cái gì đó.


8

Đó là cách tôi luôn giải thích thành công:

0 là số 0.

NULL là niết bàn, không có gì, nada, niente, không tồn tại, vắng mặt.

Các hoạt động số học được xác định trên NULL luôn mang lại kết quả NULL.

... làm việc cho tôi cho đến nay.


8
NULL là sự chấm dứt hoàn toàn của đau khổ? Ái chà! Tôi phải sử dụng nhiều hơn trong mã của tôi.
Claudiu

Có, 0 là một số. null là sự vắng mặt của bất kỳ số nào .
Michael Durrant

7

Tại sao bạn không bắt đầu bằng cách đặt câu hỏi "tại sao giá trị bằng NULL?" Điều đó có thể giúp bạn giải thích tại sao một phép tính có thể không hợp lệ.

Nếu bạn đang thực hiện cập nhật định kỳ và giá trị mới không xuất hiện (ví dụ lỗi mạng), thì NULL có thể có nghĩa là phép tính không thể được thực hiện và giá trị phần trăm cũ đã cũ. Bạn có thể muốn hiển thị một biểu tượng cho biết bạn có dữ liệu cũ, bản cập nhật không xảy ra như mong đợi.

Điều tương tự cũng có thể đúng với một giá trị cũ bị thiếu, nhưng tôi khó hiểu làm thế nào một giá trị cũ có thể bị mất (trừ khi đây là phép tính đầu tiên, hoặc pin bị chết và dữ liệu bị mất.) Nhưng bạn có thể muốn hiển thị một biểu tượng cho biết tình trạng này là tốt.

Trong mọi trường hợp bạn không muốn điều này xảy ra:

nhập mô tả hình ảnh ở đây

Nguồn hình ảnh


+1. Đây là câu trả lời: giải thích tại sao giá trị là null. Nếu bạn không thể giải thích nó, thì bạn có một lỗi.
MarkJ

5

OldValue=Null bạn không biết giá trị cũ nên sự khác biệt là không xác định (Null)

OldValue=0 Bạn biết giá trị cũ, nó là 0, vì vậy Sự khác biệt là Vô cực (Không)

Nếu việc phân biệt giữa hai điều này rất quan trọng, chỉ cần lưu trữ giá trị Cũ dưới dạng PreviousValuevà hiển thị ở đâu đó.


Chỉnh sửa dựa trên nhận xét bên dưới:
Tôi sẽ chỉ hỏi anh ấy những gì anh ấy muốn làm trong các tình huống sau đây và cho anh ấy thấy ví dụ về mỗi điều này. Sau đó và hỏi anh ta "Bạn muốn hiển thị giá trị nào cho những thứ này?"

Đừng làm cho vấn đề máy tính trở thành vấn đề .. Đây là một câu hỏi kinh doanh.


Tôi không nghĩ rằng ông chủ của tôi sẽ hiểu những gì bạn vừa nói :)
OO

+1 để tiếp cận nó như một câu hỏi kinh doanh. Sếp có thể không quan tâm đến việc thực hiện nào.
Allen Gould

4

Tôi đã có rất nhiều thành công với 'trống.'

Với những người hiểu đại số cơ bản (hoặc ý tưởng đơn giản là bạn có thể gán giá trị cho biểu tượng), ý tưởng về giá trị 'trống' dường như khá đơn giản và khác biệt với giá trị 0.


4

NULL không phải là một giá trị, nó thiếu một. Không vẫn là một giá trị. (ngay cả khi nó có thể được sử dụng trong trường hợp không thể đánh giá đầy đủ.

Bằng cách tương tự (một cách tốt để giải thích cho những người không teckies;

if I have three apples then I subtract three apples how many apples do I have? is 0

If I have a bag of apples and I never look in the bag, how many apples do I have? is null

Mặc dù trong trường hợp này, cả hai có thể có cùng một giá trị (tùy thuộc vào ngôn ngữ của bạn), về mặt khái niệm chúng rất khác nhau


4

Thực sự nó không liên quan cho dù ông chủ của bạn là một lập trình viên. Vấn đề là một khái niệm không phải là một kỹ thuật.

Yêu cầu anh ta giả sử bạn được tăng lương. Mức lương cũ của bạn là 175k, nhưng mức lương mới của bạn là không rõ. Sau đó hỏi anh ta - bạn đã nhận được bao nhiêu phần trăm?

Nếu anh ta bị vô hiệu hóa, hãy đưa anh ta qua quy trình cho đến khi anh ta có thể thấy vị trí của liên kết bị thiếu.


3

Tôi sử dụng đồng xu lật. Đúng là đầu, sai là đuôi và một tay ôm lấy tay kia giấu đồng xu là NULL. Nếu bạn biết đồng xu đang đứng đầu, thật dễ dàng để trả lời câu hỏi "điều gì ngược lại với giá trị này?". Một tay giấu đồng xu cho thấy người đó có thể trả lời rất dễ dàng nếu bạn cho họ thấy giá trị hiện tại, nhưng vì bạn sẽ không trả lời nên họ không thể trả lời cho bạn. Đối với tất cả những gì họ biết, bạn thậm chí không có một đồng xu nào trong tay!


1

Trong một lĩnh vực, NULL nói rằng tôi không có ý tưởng nào; không có dữ liệu ở đây - tương đương với trống. Không (0) nói rằng tôi biết giá trị của trường này chính xác là 0, ví dụ: số nguyên thấp hơn số một.

Ví dụ, tôi có thể có một tờ giấy mà tôi đang gõ vào hệ thống máy tính cho biết mỗi khách hàng nợ bao nhiêu. Khách hàng A nợ 50 đô la, khách hàng B nợ 0 đô la và khách hàng C nợ NULL (????), vì số tiền khách hàng C nợ đã được xử lý lại (ai đó đã vẽ một đường màu đen trên đó và không thể đọc được; hóa đơn của họ chưa sẵn sàng). Tôi có thể thoải mái nói rằng khách hàng B nợ $ 0 và có thể thoải mái nói rằng tôi không biết khách hàng C nợ gì. Tôi không muốn tính phí khách hàng C $ 0 (vì họ có thể nợ tiền).


1

Giả sử chúng ta không tham gia vào những thứ cụ thể về ngôn ngữ như:

#define NULL 0

Sự khác biệt là 0 là một giá trị số trong đó NULL không. Nó giống như một ô trống trên một tờ giấy vẽ đồ thị. Một ô có thể có "0" trong đó, nhưng nó cũng có thể trống. Null vẫn là một giá trị, nhưng bạn đã coi nó là đặc biệt. Ví dụ: nếu các ô của bạn bây giờ là các ký tự, bạn có thể sử dụng ô trống làm khoảng trắng và một ô rỗng không còn có thể trừ khi bạn chỉ định hoặc tạo một ký tự là trường hợp đặc biệt.

Null có nghĩa là gì phụ thuộc vào cách dữ liệu được diễn giải:

  • Dữ liệu không có thể có nghĩa là "chưa được cung cấp" và một chương trình sẽ đợi một lúc trước khi kiểm tra lại giá trị.
  • Dữ liệu có thể không có giá trị null. Nó có thể được hiểu một cách nghiêm ngặt như một số nguyên và một giá trị không nguyên sẽ là không thể.
  • Thông thường trong bộ nhớ, địa chỉ 0 được hiểu là null, có nghĩa là nó không thể được sử dụng.

NULL == 0hoạt động tốt khi bạn đang xử lý các con trỏ null trong C et al. Nếu bạn đang cố gắng giải thích ý tưởng cho ông chủ không phải lập trình viên của mình bằng cách hiển thị mã cho họ, bạn đã làm sai.
Tullo_x86

1

Tôi sẽ chạy kiểm tra NVL và nếu một trong các tham số là NULL tôi sẽ hiển thị Chuỗi "Không áp dụng" (không trả về "0" vì điều đó không đúng!).

Đây là một cái gì đó, theo quan điểm của người quản lý, sẽ trông chuyên nghiệp hơn sau đó hiển thị giá trị NULL trông giống như bạn có một lỗi (tất nhiên là bạn không có - nhưng đó là cách nhìn của một người không phải kỹ sư) .


+1 ông chủ và tất cả người dùng không quan tâm null có nghĩa là gì. Họ muốn một lời giải thích có ý nghĩa về giá trị. Nếu không có giá trị cũ hay mới thì không có thay đổi.
jqa

1

chúng ta có giá trị cũ, nhưng không phải giá trị mới.

Có vẻ như trong suy nghĩ của anh ấy, không có một giá trị mới không có nghĩa là nó không được biết đến; nó giống như giá trị cũ Bạn có thể viết mã theo đó mà không cần giải thích null vì trong suy nghĩ của anh ấy, nó không bao giờ là null.

Thay vì tranh luận quan điểm về NULL, chỉ cần đảm bảo rằng điều này không tạo ra các vấn đề khác. Sự phân nhánh của việc có dữ liệu quá cũ là gì? Khi ai đó thấy thay đổi 0%, họ có nhấn nút hoảng loạn không? Điều này sẽ nghiêng bất kỳ phân tích hoặc tổng hợp theo thời gian?

Tôi chỉ không nghĩ rằng anh ta cần một hướng dẫn lập trình máy tính, nhưng thật tuyệt nếu anh ta biết null là gì và hỏi đúng câu hỏi thay thế.


1

Nếu old valuelà null, kết quả của các phương trình sẽ là null. Điều này là do null không phải là một số, nó có nghĩa là giá trị không xác định. Do đó, việc tính toán không thể tiến hành.

Tất nhiên phương trình của bạn cũng thất bại nếu old value = 0như bạn không thể chia cho số không.

Thông thường bạn xử lý những điều này với một tuyên bố trường hợp sẽ đưa bạn theo con đường của những gì bạn muốn hiển thị. Vì vậy, nếu bạn muốn kết quả hiển thị là null khi bạn không thể tính toán (như với null hoặc 0, thì bạn sẽ thực hiện một câu lệnh tình huống giống như

case when [old value] = 0 then null 
else 100 * (([old value] - [new value]) /[old value]) 
end

Từ quan điểm người dùng 0 và NULL trong trường hợp giá trị cũ sẽ không bằng một sự khác biệt (ví dụ: nếu tôi phải hiển thị một giá trị trong hộp văn bản). Trong phần trăm thay đổi, không có giá trị có thể có nghĩa giống như null hoặc 0, phải không?
OO

IN phần trăm thay đổi bằng 0 có nghĩa là cụ thể không có thay đổi (giá trị cũ và mới hoàn toàn giống nhau), null có nghĩa là có thay đổi nhưng phần trăm không thể được xác định. Đây là lý do tại sao bạn có thể không muốn hiển thị số 0 vì kết quả là sai.
HLGEM

1

Một số thảo luận tuyệt vời về sự tương tự để giải thích các khía cạnh cơ học của một biểu tượng null so với các giá trị khác; tuy nhiên, mấu chốt của câu hỏi này có lẽ từ quan điểm của người quản lý trong việc thể hiện đầy đủ kết quả trong UI, đại diện cho các giới hạn có ý nghĩa của công thức thay đổi liên tục như áp dụng cho vấn đề cụ thể của họ, có thể được trả lời cụ thể hơn.

Trong trường hợp tỷ lệ thay đổi diễn đàn, hai điều cần được thể hiện: khi một cái gì đó được đo lần đầu tiên và khi không có gì được đo cho một khía cạnh cụ thể.

Khi một cái gì đó được đo lường đầu tiên (oldValue === NULL), phần trăm thay đổi không được áp dụng; và có thể / nên lưu ý rõ ràng rằng đó là phép đo ban đầu cho chu trình đo đó.

Khi không có gì được đo (newValue === NULL), phần trăm thay đổi kết quả thực tế thực sự là giá trị bằng 0 (giả sử không có giá trị trong chu kỳ trước). Zero nói chung là câu trả lời thích hợp cho công thức trong trường hợp này. Không có phép đo trong chu kỳ gần đây nhất này và do đó không có sự thay đổi nào được đo. Điều đó không có nghĩa là nó không thay đổi, chỉ là không có gì được đo lường, ghi lại hoặc truyền đạt liên quan đến khía cạnh đó.


0

Chắc chắn họ hiểu khái niệm đặt "Không áp dụng" trên một biểu mẫu khi chúng có nghĩa là "không có sẵn". Chẳng hạn, để trả lời câu hỏi, "Benjamin Franklin bao nhiêu tuổi?" câu trả lời 0 và N / A rõ ràng là khác nhau (và câu trả lời sau là đúng). Tương tự, câu trả lời 0 và NULL là khác nhau.


0
  • NULL là sự vắng mặt của một giá trị.
  • -Zero- là một giá trị và giá trị đó là -Zero-.

Nếu tôi phải giải thích những khái niệm này cho ai đó, tôi sẽ vẽ hai hộp.

  • Một hộp trống sẽ đại diện cho NULL.
  • Một hộp có số -Zero- trong đó sẽ đại diện cho -Zero-.

0

Sự khác biệt giữa 0 và null giống như sự khác biệt giữa việc có tài khoản ngân hàng với số dư 0 và hoàn toàn không có tài khoản ngân hàng.


-1

Điều này được giải thích tốt nhất với con trỏ.

var a -> [0] // variable a is initialized and set to hold 0
var b -> [123asgeb0] // variable b is initialized but not set, memory is pointed to, but holds whatever was there last

Bởi vì điều này, nếu ngôn ngữ của bạn không theo dõi các biến NULL cho bạn, thì bạn sẽ sử dụng bất cứ thứ gì đã có ở đó . Điều này có thể dẫn đến tràn, hỏng tham nhũng hoặc tác dụng phụ khó chịu khác.

Nếu ngôn ngữ không theo dõi các biến NULL, sau đó nó sẽ có một trường hợp quy định để xử lý này. IE coi NULL là 0, ném ngoại lệ, coi nop, v.v.

Để chứng minh cho sếp của bạn, hãy lấy một vài mẩu giấy đã sử dụng.

  1. Lấy 2 ly, và một que trắng.
  2. Xóa một phần của trang và viết số không
  3. Đặt một cái ly trên đó (đây là var a)
  4. Đặt một ly trên một phần khác của trang (đây là var b)

-1

Đánh giá bằng nhiều câu trả lời cho câu hỏi này, có thể kết luận điều chúng ta đã biết: null có thể có nghĩa là nhiều điều.

Nó có nghĩa là dữ liệu là:

  • không được biết là
  • được biết là không được biết đến,
  • không hợp lệ (ví dụ: lỗi đo lường),
  • không thể truy cập (ví dụ: bảo mật-khôn ngoan),
  • được biết đến nhưng không liên quan đến việc xử lý dữ liệu hiện tại
  • dữ liệu là vô hạn (thường được sử dụng trong cơ sở dữ liệu)
  • có lẽ 10 điều nữa tôi không nghĩ đến

Vì lý do này và nhiều lý do khác, thường rất hữu ích khi xác định cơ sở hạ tầng bao gói ý nghĩa của giá trị null (ví dụ: lớp Tùy chọn).


-2

Người -1 -1 này không có khiếu hài hước. FWIW Tôi là một Kiến trúc sư.

Null là sự trống rỗng. Theo truyền thuyết, có 17 hương vị (ý nghĩa có thể) của Null bao gồm "Tôi không biết", "Họ không nói" và "ai đó đã phá vỡ điều này". Không ai biết tại sao ngoại trừ các DBA và Kiến trúc sư cau có từ các phòng tối ở các lập trình viên đơn thuần. Họ mỉm cười lịch sự với các ông chủ và vẫy tay với mối quan tâm sâu sắc với sự khôn ngoan phức tạp không thể tin được, và rất quan trọng nhưng không rõ ràng - bởi vì các ông chủ cung cấp hiệu suất quan trọng cho DBA và Kiến trúc sư. Một kiểm tra lương. Mặc dù vậy Nulls không bao giờ nói ra bí mật của họ. Chúng là những hố đen trống rỗng. Một null không bao giờ bằng null khác bởi vì mỗi sự trống rỗng là trống rỗng của sự bình đẳng và từ chối thừa nhận rằng nó có thể không phải là tất cả trống rỗng có. Tất nhiên đây là phỏng đoán bởi vì không ai tự tôn trọng null có thể thực sự thừa nhận nó. Đôi khi null hút một lượng lớn dữ liệu thực vào (). Điều này được gọi là một lỗi nhưng thực sự chỉ là sự trống rỗng trong tâm trí của lập trình viên mà quên mất null. Vì vậy, bạn thấy họ đôi khi làm giống. Nhưng làm thế nào hoặc tại sao luôn nhanh chóng bị lãng quên. () đôi khi là dấu hiệu của null hoặc anh em họ của anh ta nhưng không phải là một lỗi.

Không là một số lượng nhất định của một cái gì đó. Zeros hạnh phúc hơn nhiều so với null. Zeros chỉ lười biếng và không thêm nhiều vào kết quả.

Đối với câu trả lời chính xác, rất cũ, Null là một đại diện của "thông tin bị thiếu và thông tin không thể áp dụng" EF Codd, người tạo ra SQL.

Codd cũng đã phát minh ra hình thức bình thường thứ 3 được áp dụng vào tâm trí của các nhà khoa học máy tính trẻ như một hình thức tra tấn sơ bộ. Một khi thành thạo nó là hoàn toàn coi thường. Những điều tương tự xảy ra khi Thiết kế hướng đối tượng được giới thiệu. Và chúng tôi không bao giờ hạnh phúc khi để nó một mình, vì vậy đi kèm với sự không phù hợp trở kháng để thêm vào cuộc cạnh tranh điên cuồng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.