Wie kann ich den Unterschied zwischen NULL und Null erklären?

59

Arbeiten an einem Problem, das die Prozentänderungsformel verwendet:

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

Wie würde ich den Unterschied erklären new value or old value = NULL, anstatt 0jemandem, der vielleicht kein Programmierer ist?

Mein Chef fragt sich, warum es in der TextBox eine leere Zeichenfolge gibt und keinen Wert, weil wir den alten Wert haben, aber nicht den neuen Wert.

OO
quelle
11
"Wie würde ich den Unterschied erklären?" In welcher Sprache? Einige Sprachen lösen eine Ausnahme aus. Einige geben ein NULL-Ergebnis zurück. Einige hängen von den Details der Implementierung von NULL ab. Sie müssen viel genauer sein.
S.Lott,
29
Ändern Sie das Textfeld so, dass anstelle der leeren Zeichenfolge "Daten nicht verfügbar" angezeigt wird.
Craig
3
@ZJR - so zeigen Sie die Nachricht in rot unter dem Feld an. Punkt ist, "NULL" oder eine leere Zeichenfolge haben in einer Benutzeroberfläche ungefähr so ​​viel Verwendung wie die Speicheradresse eines Objekts.
Detly
10
In analoger Weise sind 0 Grad Temperatur und kein Temperaturmesswert unterschiedliche Situationen ...
NWS
4
Ich kann jetzt nicht antworten, dass es geschützt ist, aber ich erkläre immer, dass NULLes sich um einen Zustand handelt , nicht um einen Wert - es bedeutet, dass Sie den Wert nicht kennen. Für SQL verwende ich normalerweise die Partei-Analogie, um zu demonstrieren.
JNK

Antworten:

101

Um einem Chef den Unterschied zwischen "Null" und "Null" zu erklären:

"Null" ist ein Wert. Es ist die eindeutige, bekannte Größe von Null, die in der Arithmetik und anderen Mathematik bedeutsam ist.

"Null" ist kein Wert. Es ist ein "Platzhalter" für einen Datenwert, der nicht bekannt oder nicht angegeben ist. Es ist nur in diesem Zusammenhang sinnvoll; mathematische Operationen können nicht mit null ausgeführt werden (das Ergebnis einer solchen Operation ist undefiniert und wird daher im Allgemeinen auch als null dargestellt).

Zum Beispiel wie in den Kommentaren: "Was ist Ihr Jahreseinkommen?" ist eine Frage, die eine numerische Antwort erfordert. "0" ist eine vollkommen gültige Antwort für jemanden, der nicht arbeitet und kein Kapitalanlageeinkommen hat. Wenn der Benutzer überhaupt keinen Wert eingibt, verdient er nicht unbedingt kein Geld. Sie wollten Ihrer Software nur nicht mitteilen, wie viel (oder wie wenig) sie verdienen. Es ist eine unbekannte, nicht spezifizierte; Damit die Software fortgesetzt werden kann, geben Sie den Platzhalter "null" für dieses Datenfeld in der Software an. Das ist aus Datenperspektive technisch gültig. Ob sie auf Unternehmensebene gültig ist, hängt davon ab, ob ein tatsächlicher numerischer Wert (sogar Null) erforderlich ist, um eine mathematische Operation durchzuführen (z. B. Berechnung von Steuern oder Vergleich mit Schwellenwerten, die die Leistungen bestimmen).

Auf Computern führt praktisch jede Operation mit einer Variablen, die null enthält, entweder zu null oder zu einer Fehlerbedingung, da einer der Werte der Variablen nicht bekannt ist und das Ergebnis des Ausdrucks nicht bekannt ist. Das Äquivalent zu Null wäre, wenn ich Sie fragen würde: "Was ist fünf plus der Zahl, an die ich gerade denke?". Es ist unmöglich für Sie, eine eindeutige Antwort zu geben, weil Sie die Nummer, an die ich denke, nicht kennen. Eine Operation auf Null ist normalerweise gültig und gibt einen anderen bekannten, eindeutigen Wert zurück.

KeithS
quelle
37
"Platzhalter" ist eine hilfreiche Beschreibung. Wenn Sie eine Umfrage durchgeführt und gefragt haben, wie alt Sie sind, und jemand diese Frage übersprungen hat, sollten Sie diese Antwort NICHT als 0 darstellen. Dies ist eine (wahrscheinlich falsche) Annahme. Die richtige Darstellung wäre NULL.
Nathan Long
Wir können also einfach sagen, dass NULL ein Platzhalter im Speicher mit einem undefinierten Datentyp ist. Richtig?
Maxood
1
@Maxood - Das hängt von der Programmiersprache ab. Ich würde eine Ganzzahlvariable in Betracht ziehen, die (unter Verwendung der? -Syntax) null sein darf und auf null gesetzt ist, damit kein bekannter Ganzzahlwert vorliegt. Der erwartete Typ ist bekannt, sozusagen nicht definiert. Man könnte ihn als nicht 100% korrekt ansehen. Es ist richtig zu sagen, dass null keinen Wert oder Typ hat. Ich persönlich würde sagen, dass der NULL- oder NULL- Typ nicht definiert ist, abhängig vom Kontext und der Sprache, die Sie verwenden. In C # würde dies einfach bedeuten, dass der Verweis auf das Objekt undefiniert wäre.
Ramhound
NULLdie explict ist LACK von Daten ist es nicht ein Platzhalter, es ist eine einzige Einzel Darstellung ist keine Daten.
Die "Platzhalter" -Terminologie ist in dieser Antwort enthalten, seit sie zum ersten Mal veröffentlicht wurde, und ich werde sie jetzt nicht ändern. Die Änderungen, die diese Frage auffrischten, sollten andere Punkte in der Erklärung klarstellen. Wie in den meisten Sprachen implementiert, handelt es sich in der Tat um einen "Platzhalter". eine reservierte Stelle im Speicher an der Adresse Null, die in der Struktur des Programms zum ausdrücklichen Zweck existiert, von Speicherzeigern "referenziert" zu werden, um anzuzeigen, dass sie auf nichts Sinnvolles verweisen. Das ist mehr, als der OP seinem Chef mitteilen müsste.
KeithS
172

Boss-Speak ist immer hart ...

Null ist eine Zahl, mit der Sie etwas anfangen können.

Null ist ein Einhorn. Es gibt es nicht, also kann man damit überhaupt nichts anfangen.

Dave Wise
quelle
45
+1 für das Einhorn! Ich muss hinzufügen: sehr gute Erklärung.
Freitag,
14
Ich muss möglicherweise anfangen, meine Fragen NVL(somefield,'UNICORN')
einzutragen
11
Dann könnte der Chef einfach fragen: "Warum machen wir es nicht auf 0, damit wir etwas damit anfangen können? Null klingt nutzlos."
AlbeyAmakiir
26
@AlbeyAmakiir - Die richtige Antwort auf einen solchen Chef wäre: "Während wir so tun, als wüssten wir Dinge, die wir nicht wissen, warum machen wir es nicht 1 Million? Das ist nett und groß."
Nathan Long
12
Ich kann nicht glauben, dass das mehr als 90 Stimmen hat. Ich werde anfangen, Einhörner in all meine Antworten zu setzen.
Morons
38

Formulieren Sie die Gleichungen einfach in Sätze um:

"Was ist die prozentuale Änderung, wenn Sie mit einem unbekannten Wert beginnen und am Ende 150 haben?"

und

"Was ist die prozentuale Änderung, wenn Sie mit 85 beginnen und am Ende einen unbekannten Wert haben ?"

Natürlich lautet die Antwort auf beide Fragen: "Es kann nicht berechnet werden, da eines der kritischen Elemente der Berechnung fehlt." Das ist die Essenz von 'null'.

Es sollte dann einfach sein, die äquivalenten Sätze mit Null herauszufinden und zu sehen, wie sie sich grundlegend unterscheiden:

"Was ist die prozentuale Änderung, wenn Sie mit einer 0 beginnen und am Ende mit 150 enden?"

und

"Was ist die prozentuale Änderung, wenn Sie mit 85 beginnen und mit 0 enden?"

Obwohl die Antworten (mit Nullen) möglicherweise nicht sehr sinnvoll sind, kann sie zumindest berechnet werden . Mit null ist die Berechnung gar nicht möglich .

Eric King
quelle
2
+1 "Unbekannt" ist definitiv eine großartige Erklärung und lässt sich leicht in Sätzen erklären.
Scott Rippey
@ScottRippey - Ich würde behaupten, der Wert ist nicht unknowneinfach nicht vorhanden, da im Fall eines NULLProzentsatzes tatsächlich KEIN numerischer Wert (Prozentsatz) oder ein anderer prozentualer Wert vorliegt .
Ramhound
2
@Ramhound Hier ist, worauf ich im Zusammenhang mit der ursprünglichen Frage gekommen bin: "Unbekannt" steht für den "Platzhalter" in der Antwort von KiethS, was meiner Meinung nach eine großartige Erklärung ist. Für einen Nicht-Programmierer-Chef bedeutet dies, dass es irgendwo einen Wert gibt, den wir jedoch nicht haben (in der Datenbank, im System, im Formular usw.). Gibt es einen Wert? Wir haben nicht genug Informationen, um das eine oder andere zu wissen. Daten fehlen. Das ist eine subtil andere Bedeutung als nichts , was darauf schließen lässt, dass kein Wert zu haben ist . Abhängig vom Kontext der Diskussion kann jede Erklärung richtig sein.
Eric King
20

Wenn Sie mit Ihrem Chef sprechen, verwenden Sie nur 0für Null und ?für Null. Es erfasst korrekterweise, dass es ein Platzhalter für etwas ist, aber dass Sie nicht wissen, was es ist.

Michael Haren
quelle
? Genial, einfach und vermittelt das Konzept klar für Laien.
Nelaaro
12

Wie wäre es damit:

  • 0 lautet die Antwort auf "Wie viel Flüssigkeit befindet sich in einer leeren Flasche?".
  • NULL lautet die Antwort auf "Was ist der Inhalt einer leeren Flasche?".

Oder wenn Sie sich einen kinderlosen Mann vorstellen:

  • Die Zahl seiner Kinder ist 0
  • sein ältestes Kind ist NULL

Der grundlegende Unterschied besteht darin, dass 0es um messbare Größen geht, während NULLes um Existenz geht. Quantität zu sein, 0repräsentiert etwas , dh eine Quantität, die einer Quantität 0sehr ähnlich 0.000000001ist (einer, der in alltäglichen Problemen tatsächlich ununterscheidbar nahe steht 0). Im Gegensatz dazu NULLsteht nichts . In der Tat gibt es nichts in der Nähe NULL. Der Wert einer Variablen (und Ausdrücke) ist entweder NULLoder etwas.

back2dos
quelle
8

So erkläre ich es immer erfolgreich:

0 ist die Zahl 0.

NULL ist Nirwana, nichts, nada, niente, Nichtexistenz, Abwesenheit.

Auf NULL definierte arithemetische Operationen ergeben daher immer NULL.

... hat bisher für mich gearbeitet.

Falke
quelle
8
NULL ist das völlige Aufhören des Leidens? Woah! Ich muss das mehr in meinem Code verwenden.
Claudiu
Ja, 0 ist eine Zahl. Null ist die Abwesenheit von irgendeiner Zahl.
Michael Durrant
7

Warum würden Sie nicht mit der Frage beginnen, warum der Wert gleich NULL ist? Dies kann Ihnen helfen, zu erklären, warum eine Berechnung möglicherweise ungültig ist.

Wenn Sie regelmäßige Aktualisierungen durchgeführt haben und der neue Wert nicht angezeigt wurde (z. B. Netzwerkfehler), kann NULL bedeuten, dass die Berechnung nicht durchgeführt werden kann und der alte Prozentwert veraltet ist. Möglicherweise möchten Sie ein Symbol anzeigen, das darauf hinweist, dass veraltete Daten vorhanden sind. Die Aktualisierung wurde nicht wie erwartet durchgeführt.

Dasselbe mag für einen fehlenden alten Wert zutreffen, aber ich kann nur schwer nachvollziehen, wie ein alter Wert verloren gehen kann (es sei denn, dies ist die erste Berechnung, oder die Batterie ist leer und die Daten gingen verloren.) Aber Sie möchten vielleicht Zeigen Sie ein Symbol an, das auf diesen Zustand hinweist.

In jedem Fall möchten Sie nicht, dass dies passiert:

Bildbeschreibung hier eingeben

Bildquelle

Jim
quelle
+1. Dies ist die Antwort: Erklären Sie, warum der Wert null ist. Wenn Sie es nicht erklären können, dann haben Sie einen Fehler.
MarkJ
5

OldValue=Null Sie kennen den alten Wert nicht, daher ist der Unterschied unbekannt (Null).

OldValue=0 Sie kennen den alten Wert, er ist 0, also ist der Unterschied Unendlich (Null)

Wenn es wichtig ist, zwischen diesen beiden zu unterscheiden, speichern Sie einfach den alten Wert als PreviousValueund zeigen ihn irgendwo an.


Bearbeiten Sie anhand des Kommentars unten:
Ich würde ihn nur fragen, was er in den folgenden Situationen tun möchte, und ihm Beispiele für jede dieser Situationen zeigen. Dann fragen Sie ihn: "Welchen Wert möchten Sie für diese anzeigen?"

Machen Sie dies in keiner Weise zu einem Computerproblem. Es ist eine geschäftliche Frage.

Idioten
quelle
Ich glaube nicht, dass mein Chef verstehen würde, was Sie gerade gesagt haben :)
OO
+1 für die Annäherung als Geschäftsfrage. Der Chef kümmert sich wahrscheinlich sowieso nicht um die Implementierung.
Allen Gould
4

Ich hatte viel Erfolg mit 'blank'.

Bei Leuten, die die grundlegende Algebra verstehen (oder die einfache Idee, dass Sie einem Symbol einen Wert zuweisen können), scheint die Idee eines "leeren" Werts ziemlich einfach zu sein und sich von einem Nullwert zu unterscheiden.

Jonathan Rich
quelle
4

NULL ist kein Wert, es fehlt einer. Null ist immer noch ein Wert. (Auch wenn es in Fällen verwendet werden kann, in denen es nicht vollständig evaluiert werden kann.

In Analogie (eine gute Möglichkeit, Nicht-Teckies zu erklären;

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

In diesem Fall haben beide möglicherweise den gleichen Wert (abhängig von Ihrer Sprache), sind jedoch konzeptionell sehr unterschiedlich

Tom Squires
quelle
4

Wirklich ist es nicht relevant, ob Ihr Chef ein Programmierer ist. Das Problem ist konzeptionell und nicht technisch.

Bitten Sie ihn anzunehmen, dass Sie eine Gehaltserhöhung erhalten haben. Ihr altes Gehalt war 175.000, aber Ihr neues Gehalt ist unbekannt. Dann fragen Sie ihn - wie viel Prozent der Gehaltserhöhung haben Sie erhalten?

Wenn er arithmetisch deaktiviert ist, führen Sie ihn durch den Prozess, bis er den fehlenden Link erkennt.

Jonathan Maddison
quelle
3

Ich benutze den Münzwurf. Richtig sind Köpfe, falsch sind Schwänze, und eine Hand, die über der anderen liegt und die Münze verbirgt, ist NULL. Wenn Sie wissen, dass es sich bei der Münze um Köpfe handelt, können Sie die Frage "Was ist das Gegenteil von diesem Wert?" Ganz einfach beantworten. Eine Hand, die die Münze versteckt, zeigt sehr leicht, dass die Person antworten könnte , wenn Sie sie den aktuellen Wert sehen lassen würden, aber da Sie dies nicht tun, können sie Ihnen keine Antwort geben. Nach allem, was sie wissen, haben Sie nicht einmal eine Münze unter der Hand!

Bryan Boettcher
quelle
1

In einem Feld sagt NULL, dass ich keine Ahnung habe; Hier gibt es keine Daten - es ist gleichbedeutend mit Leerzeichen. Null (0) besagt, dass ich weiß, dass der Wert dieses Felds genau 0 ist, z. B. die ganze Zahl, die um eins niedriger als die Zahl eins ist.

Zum Beispiel könnte ich ein Blatt Papier haben, das ich in das Computersystem eintippe und auf dem steht, wie viel jeder Kunde schuldet. Kunde A schuldet $ 50, Kunde B $ 0 und Kunde C NULL (????), weil der Betrag, den Kunde C schuldet, reduziert wurde (jemand hat eine schwarze Linie darüber gezogen und es ist nicht lesbar; ihre Rechnung für ist noch nicht fertig). Ich kann bequem sagen, dass Kunde B 0 USD schuldet, und ich kann bequem sagen, dass ich nicht weiß, was Kunde C schuldet. Ich möchte dem Kunden keine C $ 0 in Rechnung stellen (weil er möglicherweise Geld schuldet).

Dr. Jimbob
quelle
1

Angenommen, wir beschäftigen uns nicht mit sprachspezifischen Themen wie:

#define NULL 0

Der Unterschied besteht darin, dass 0 ein numerischer Wert ist, bei dem NULL nicht ist. Es ist wie eine leere Zelle auf einem Millimeterpapier. Eine Zelle kann eine "0" enthalten, sie kann jedoch auch leer sein. Null ist immer noch ein Wert, aber Sie haben es als besonders erachtet. Wenn Ihre Zellen jetzt beispielsweise Zeichen waren, können Sie die leere Zelle als Leerzeichen verwenden, und eine Nullzelle ist nur dann möglich, wenn Sie ein Zeichen als Sonderfall festlegen oder erstellen.

Was null bedeutet, hängt davon ab, wie die Daten interpretiert werden:

  • NULL-Daten können "noch nicht bereitgestellt" bedeuten, und ein Programm wartet eine Weile, bevor es den Wert erneut überprüft.
  • Daten können möglicherweise keinen Nullwert haben. Es kann streng als Ganzzahl interpretiert werden, und ein nicht ganzzahliger Wert wäre unmöglich.
  • Üblicherweise wird die Adresse 0 im Speicher als Null interpretiert, was bedeutet, dass sie nicht verwendet werden kann.
Wassili Scharapow
quelle
NULL == 0Funktioniert gut, wenn Sie mit Nullzeigern in C et al. Wenn Sie versuchen, Ihrem Nicht-Programmierer-Chef die Idee zu erklären, indem Sie ihm Code zeigen, machen Sie es falsch.
Tullo_x86
1

Ich würde die NVL-Prüfung ausführen und wenn einer der Parameter NULL ist, würde ich die Zeichenfolge "N / A" anzeigen (keine "0" zurückgeben, da dies einfach nicht wahr ist!).

Dies ist etwas, das aus der Sicht eines Managers professioneller aussieht, als einen NULL-Wert anzuzeigen, wie Sie aussehen, als hätten Sie einen Fehler (was Sie natürlich nicht tun - aber für einen Nicht-Ingenieur sieht es so aus). .

alfasin
quelle
+1 dem Chef und allen Benutzern ist es egal, was Null bedeutet. Sie wollen eine aussagekräftige Erklärung des Wertes. Wenn es keinen alten oder neuen Wert gibt, gibt es keine Änderung.
JQA
1

Wir haben den alten Wert, aber nicht den neuen Wert.

Es scheint, als wäre es unbekannt, wenn er keinen neuen Wert hat. es ist das gleiche wie der alte Wert. Sie können das dementsprechend codieren, ohne null zu erklären, da es in seinem Kopf niemals null ist.

Anstatt über NULLs zu streiten, stellen Sie einfach sicher, dass dies keine weiteren Probleme verursacht. Welche Konsequenzen hat es, wenn Daten zu alt sind? Wenn jemand eine Veränderung von 0% feststellt, drückt er dann die Paniktaste? Verzerrt dies im Laufe der Zeit Analysen oder Aggregate?

Ich glaube einfach nicht, dass er ein Tutorial für Computerprogrammierung braucht, aber es wäre schön, wenn er wüsste, was eine Null ist und stattdessen die richtige Frage stellt.

JeffO
quelle
1

Wenn das old valuenull ist, sollte das Ergebnis der Gleichungen zu Recht null sein. Dies liegt daran, dass null keine Zahl ist, sondern einen unbekannten Wert bedeutet. Daher kann die Berechnung nicht fortgesetzt werden.

Natürlich scheitert Ihre Gleichung auch, wenn old value = 0Sie nicht durch Null teilen können.

In der Regel behandeln Sie diese Dinge mit einer case-Anweisung, die Ihnen den Pfad zu dem vorgibt, was Sie anzeigen möchten. Wenn Sie also möchten, dass das Ergebnis als Null angezeigt wird, wenn Sie nicht rechnen können (wie bei einer Null oder einer Null), dann würden Sie eine case-Anweisung in etwa ausführen

case when [old value] = 0 then null 
else 100 * (([old value] - [new value]) /[old value]) 
end
HLGEM
quelle
Aus Sicht des Benutzers bedeuten 0 und NULL bei einem alten Wert keinen Unterschied (z. B. wenn ich einen Wert in einem Textfeld anzeigen muss). In Prozent kann ein fehlender Wert das Gleiche bedeuten wie null oder null, richtig?
OO
Bei einer prozentualen Änderung bedeutet Null, dass es keine Änderung gab (alte und neue Werte waren genau gleich). Null bedeutet, dass es eine Änderung gab, der Prozentsatz kann jedoch nicht bestimmt werden. Aus diesem Grund möchten Sie wahrscheinlich keine Null als Ergebnis anzeigen, da dies irreführend ist.
HLGEM
1

Einige gute Diskussionen über Analogien zur Erklärung der mechanischen Aspekte eines Null-Symbols im Vergleich zu anderen Werten; Der Kern dieser Frage, möglicherweise aus der Sicht des Managers, wenn es darum geht, die Ergebnisse in der Benutzeroberfläche angemessen auszudrücken, die die sinnvollen Grenzen der aktuell geänderten Formel darstellen, die auf ihr spezifisches Problem angewendet wird, kann meines Erachtens genauer beantwortet werden.

Im Fall der prozentualen Änderung der Forumula müssen zwei Dinge dargestellt werden: Wenn etwas zuerst gemessen wird und wenn für einen bestimmten Aspekt nichts gemessen wird.

Wenn etwas zum ersten Mal gemessen wird (oldValue === NULL), ist die prozentuale Änderung nicht anwendbar. und es könnte / sollte ausdrücklich darauf hingewiesen werden, dass dies die anfängliche Messung für diesen Messzyklus ist.

Wenn nichts gemessen wird (newValue === NULL), ist die tatsächlich resultierende prozentuale Änderung tatsächlich der Wert Null (wobei im vorherigen Zyklus davon ausgegangen wird, dass sie nicht Null ist). In diesem Fall ist in der Regel Null die richtige Antwort auf die Formel. In diesem letzten Zyklus gab es keine Messung und somit keine gemessene Änderung. Das sollte nicht bedeuten, dass es sich nicht geändert hat, nur, dass in Bezug auf diesen Aspekt nichts gemessen, aufgezeichnet oder kommuniziert wurde.

JustinC
quelle
0

Sicher verstehen sie das Konzept, "N / A" auf ein Formular zu setzen, wenn sie "nicht verfügbar" bedeuten. Zum Beispiel, um die Frage zu beantworten: "Wie alt ist Benjamin Franklin?" Die Antworten 0 und N / A sind offensichtlich unterschiedlich (und letztere ist korrekt). Ebenso sind die Antworten 0 und NULL unterschiedlich.

Scott Whitlock
quelle
0
  • NULL ist das Fehlen eines Wertes.
  • -Zero- ist ein Wert und dieser Wert ist -Zero-.

Wenn ich diese Konzepte jemandem erklären müsste, würde ich zwei Kästchen zeichnen.

  • Ein leeres Kästchen würde NULL darstellen.
  • Ein Kästchen mit der Zahl -Zero- würde -Zero- darstellen.
Jim G.
quelle
0

Der Unterschied zwischen 0 und null ist wie der Unterschied zwischen einem Bankkonto mit einem Kontostand von 0 und überhaupt keinem Bankkonto.

JSR
quelle
-1

Dies lässt sich am besten mit Zeigern erklären.

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

Aus diesem Grund verwenden Sie alles, was bereits vorhanden war , wenn Ihre Sprache keine NULL-Variablen für Sie erfasst . Dies kann zu Überläufen, Stapelverfälschungen oder anderen unangenehmen Nebenwirkungen führen.

Wenn die Sprache tut Spur von NULL Variablen halten, dann wird es einen Fall angegeben haben diese für die Handhabung. IE NULL als Null behandeln, Ausnahme auslösen, als NOP behandeln, etc.

Besorgen Sie sich zur Demonstration für Ihren Chef ein paar gebrauchte Papiere.

  1. Nehmen Sie 2 Gläser und einen weißen Stift.
  2. Machen Sie einen Seitenausschnitt weiß und notieren Sie sich eine Null
  3. Stellen Sie ein Glas darüber (das ist var a)
  4. Stelle ein Glas über einen anderen Bereich der Seite (das ist var b)
Spencer Rathbun
quelle
-1

Aus der Vielzahl der Antworten auf diese Frage lässt sich schließen, was wir bereits wissen: null kann viele Dinge bedeuten.

Entweder bedeutet es, dass die Daten:

  • nicht bekannt zu sein bekannt,
  • bekannt nicht bekannt zu sein,
  • ungültig (zB Messfehler),
  • nicht zugänglich (zB aus Sicherheitsgründen),
  • bekannt als bekannt, aber für die aktuelle Datenverarbeitung irrelevant
  • die Daten sind unendlich (oft in Datenbanken verwendet)
  • wahrscheinlich 10 weitere Dinge, an die ich nicht gedacht habe

Aus diesem und vielen anderen Gründen ist es oft nützlich, eine Datenstruktur zu definieren, die die Bedeutung des Nullwerts einkapselt (z. B. eine optionale Klasse).

Dibbeke
quelle
-2

Die Person, die dies getan hat, hat keinen Sinn für Humor. FWIW Ich bin selbst Architekt.

Null ist Leere. Der Legende nach gibt es 17 Geschmacksrichtungen (mögliche Bedeutungen) von Null, einschließlich "Ich weiß nicht", "Sie haben nicht gesagt" und "Jemand hat das gebrochen". Niemand weiß warum, außer DBAs und Architekten, die nur Programmierer aus dunklen Hinterzimmern anstarren. Sie lächeln Chefs höflich an und wedeln mit ihren Zungen in tiefer Besorgnis mit unglaublich komplexer Weisheit, die so sein muss, und sie sind zutiefst wichtig, aber nicht sehr klar - weil Chefs dem DBA und dem Architekten wichtige Leistungen erbringen. Ein Gehaltsscheck. Trotzdem verraten Nullen niemals ihre Geheimnisse. Sie sind schwarze, leere Löcher. Eine Null ist niemals gleich einer anderen Null, weil jede Leere leer ist und nicht zugeben will, dass sie möglicherweise nicht so leer ist, wie sie ist. Dies ist natürlich eine Vermutung, denn keine Null, die sich selbst respektiert, könnte es jemals wirklich zugeben. Manchmal saugen Nullen riesige Mengen an realen Daten in ihr (). Dies wird als Fehler bezeichnet, ist jedoch nur die Leere des Programmierers, der die Nullen vergisst. Sie sehen also, dass sie manchmal brüten. Aber wie oder warum wird immer schnell vergessen. () ist manchmal ein Zeichen einer Null oder seines Vetters Null, aber paradoxerweise selten ein Fehler.

Null ist eine bestimmte Menge von etwas. Nullen sind viel glücklicher als Nullen. Nullen sind nur faul und tragen nicht viel zum Ergebnis bei.

Für die langweilige, sehr alte genaue Antwort Null ist eine Darstellung von "fehlenden Informationen und nicht zutreffenden Informationen" EF Codd, Schöpfer von SQL.

Codd erfand auch die 3. Normalform, die als eine Form der vorläufigen Folter auf die Köpfe junger Informatiker angewendet wird. Einmal gemeistert, wird es völlig ignoriert. Ähnliche Dinge passieren, wenn objektorientiertes Design eingeführt wird. Und wir sind nie glücklich, es in Ruhe zu lassen, daher kommt eine Impedanz-Fehlanpassung hinzu, die zum tollen Kampf beiträgt.

Michael
quelle