Nehmen wir an, ich versuche, meinen Code in einem technischen Meeting zu beschreiben.
Zuerst setze ich den Booleschen Wert
foobar
auftrue
und
Zweitens setze ich den Booleschen Wert
foobar
auffalse
scheint ein bisschen wortreich. Wenn foobar
umgeschaltet wurde, könnte ich wahrscheinlich sagen,
Drittens schalte ich um
foobar
Indem Sie hier implizieren, wissen Sie, dass es ein Boolescher Wert ist. Sollte ich nicht in der Lage sein:
Viertens wahrheitsgemäß ich foobar
und
Fünftens fälsche ich foobar
Was wird meinen Zuhörern auch implizit mitteilen, dass es sich um eine boolesche Variable handelt? Gibt es dafür die richtige Terminologie? Vielen Dank.
terminology
boolean
Akiva
quelle
quelle
Antworten:
Sie können natürlich auch "set it to true" und "set it to false" verwenden .
quelle
Wenn möglich, anstatt sich auf den Booleschen Wert zu konzentrieren, sollten Sie versuchen zu beschreiben, was er darstellt. Einige Beispiele:
Auf diese Weise würden Sie natürlicher sprechen. Und so würden Sie in Ihrer Besprechung einfach "foobar starten und dann stoppen", anstatt "foobar zu verfälschen" (wenn foobar tatsächlich ein Dienst ist).
Wenn Sie wirklich über einen Booleschen Wert sprechen müssen, können Sie mit "set / reset" oder "set to true" und "set to false" fortfahren. "Toggle" klingt in allen Zusammenhängen ganz nett.
Und wenn Sie in einem booleschen Geschäft arbeiten (was auch immer das bedeuten könnte), dann brauchen Sie wahrscheinlich mehr Wörter als das, was das Wörterbuch zu bieten hat. In diesem Fall sind Wahrheitsfindung und Fälschung nur Teile Ihrer Mikrosprechanlage .
quelle
signal = HighVoltage
odersignal = Active
ist meiner Meinung nach viel klarer alssignal = true
.isStarted
,isActive
,isCaseSensitive
,mockConnection
, ... @PieterB: ich mit Ihnen teilweise zustimmen. "Setze den Booleschen Wert" bedeutet nicht, ihn auf true zu setzen. "isActive
Flag setzen" kann jedoch vernünftigerweise so interpretiert werden, dass es auf "wahr" gesetzt wird.signal = true
ist in der Tat nicht klar, aber wenn Sie verwenden werden,signal = Active
dann könnten Sie genauso gut verwendenisSignalActive = true
. Beachten Sie, dass dies hauptsächlich für Deskriptoren gilt, die sich eindeutig ausschließen und sich exakt ergänzen. Aktiv / Inaktiv passt auf die Rechnung. Hochspannung nicht, da "Nicht-Hochspannung" z. B. "Niederspannung" oder "Nieder- oder Mittelspannung" bedeuten könnte. Im letzteren Fall trifft das Boolesche Argument offensichtlich nicht zu. Im ersteren ist es so.Ich mag "set" / "clear", aber achte auf Mehrdeutigkeiten in deiner Formulierung. Wie Filip betont, könnte "set the bool variable" bedeuten, dass ein bestimmter Wert in die Variable geschrieben wird. Aber "Setzen der Flagge" ist klarer.
Verwandte Terminologie: Das Umwandeln einer Ganzzahl von 0 / ungleich Null in einen Wert von 0/1 wird als "Booleanisierung" bezeichnet .
Wenn Sie den 0/1-Wert tatsächlich als Ganzzahl (statt als wahr / falsch
bool
) verwenden, möchten Sie möglicherweise dieses Wort verwenden. Andernfalls wird es wahrscheinlich nur angezeigt, wenn Sie über die Kosten der Operationen sprechen, die der Compiler ausführen muss. (Oder wenn Sie manuell mit einer SIMD-Karte vektorisieren, vergleichen Sie, um in jedem Vektorelement alle Nullen / Einsen-Bits zu erzeugen.)In C und C ++
bool
kann a implizit als 0 oder 1 zurück in eine Ganzzahl konvertiert werden und wird bei normalen Implementierungenbool
als Ein-Byte-Wert gespeichert, der entweder 0 oder 1 ist (nicht irgendein Wert ungleich Null). Das ermöglicht effizientea && b
, aber in der Praxis haben viele C-Compiler Optimierungen verpasst .Diese Funktion kompiliert
ret
auf den meisten Architekturen mehrere Anweisungen (ohne die ). (MIPS sind eine interessante Ausnahme, da sie Anweisungen zum Vergleichen in das Register anstelle eines separaten Flag- / Bedingungscoderegisters enthalten). Im Godbolt-Compiler-Explorer für x86-64, MIPS und ARM sehen wir, dass die x86-64-Version wie folgt lautet:Tut mir leid, dieses Beispiel dafür, was Boolesches ein wenig groß / falsch ist!
quelle
Ich denke, "set
Foobar
to true" und "setFoobar
to false" sind einfach und prägnant. Ich glaube nicht, dass es einzelne Wörter für diese Phrasen gibt, und wenn Sie sowohl technisch als auch präzise sein müssen, ist es manchmal besser, bereit zu sein, ein wenig wortreich zu sein, als Ihr Publikum zu verwirren.quelle
"Setting" ist die richtige Methode, um das Zuweisen eines Werts zu einer Variablen zu beschreiben. Wenn Sie pedantisch werden möchten, können Sie dies als "Zuweisung" bezeichnen, aber "Setzen" ist weit verbreitet. Tatsächlich ist es idiomatisch, Java- Methoden zu schreiben
setFoobar()
(undgetFoobar()
), um die Zuweisung durchzuführen. C # geht noch einen Schritt weiter mitget
undset
Eigenschaftsdefinitionen.In Bezug auf Ihren zweiten Punkt über die Verwendung von "wahrheitsgemäß" und "verfälschen", um "durch Implikation meinen Zuhörern mitzuteilen, dass es sich um eine boolesche Variable handelt", teilen Sie Ihren Zuhörern bereits mit, dass die Variable boolesch ist, wenn Sie sagen:
quelle
isFoobar()
Assert oder Retract kann auch verwendet werden, meistens, wenn es sich um Aussagen handelt und nicht um einfache Variablen, z. B. in Prolog. Normalerweise gibt es unterschiedliche Begriffe, je nachdem, was der Boolesche Wert darstellt, und nicht nur einen allgemeinen Begriff für alle Sprachen mit Booleschen Werten (Flag oder Bit setzen / löschen, Gerät oder Modus aktivieren / deaktivieren, Satz aktivieren / zurücknehmen, wahrscheinlich mehr).
quelle
Das Ändern eines Booleschen Werts von
true
nachfalse
oder umgekehrt wird als Negieren bezeichnet .Das Setzen eines Booleschen Werts auf
false
wird als Verfälschung des Booleschen Werts bezeichnet . Ich würde dich verstehen, wenn du "wahrheitsgemäß" sagst, aber das klingt nicht richtig. Ich bin mir nicht sicher, was das Verb für etwas isttrue
, also könnte es richtig sein.Ich würde auf jemanden mit einer besseren Antwort warten, bevor Sie beginnen, "wahrheitsgemäß" zu verwenden.
quelle
Ein Boolescher Wert entspricht einem SPST-Schalter (Single Pole, Single Throw): Man schaltet ihn ein oder aus .
quelle
done
Variable einschalten" oder "Dieerror
Variable ist ausgeschaltet" klingen beide ein bisschen aus, zumindest für mich. Alternativen, die von anderen Antworten vorgeschlagen wurden, scheinen häufiger vorzukommen - "Setzen Sie diedone
Variable / bool / flag [auf true]" oder "Daserror
Flag wird gelöscht."