Powiedzmy, że próbuję opisać mój kod na spotkaniu technicznym.
Najpierw ustawiłem wartość logiczną
foobar
natrue
i
Po drugie, ustawiłem wartość logiczną
foobar
nafalse
wydaje się trochę niewygodny. Gdyby foobar
został przełączony, prawdopodobnie powiedziałbym:
Po trzecie, przełączam
foobar
Poprzez implikację tutaj wiesz, że to boolean. Więc nie powinienem móc:
Po czwarte, ja Truthify foobar
i
Po piąte, I Falsify foobar
Co również przez domniemanie powie moim słuchaczom, że mamy do czynienia ze zmienną boolowską? Czy istnieje odpowiednia terminologia w tym zakresie? Dzięki.
terminology
boolean
Akiva
źródło
źródło
Odpowiedzi:
Możesz także użyć opcji „ustawienie true” i „ustawienie go na false” .
źródło
Jeśli to w ogóle możliwe, zamiast skupiać się na wartości logicznej, powinieneś spróbować opisać, co ona reprezentuje. Kilka przykładów:
W ten sposób będziesz mówić w bardziej naturalny sposób. I tak na spotkaniu zamiast „prawdy foobar, a następnie sfałszowania go”, po prostu „zaczniecie foobar, a potem go zatrzymacie” (jeśli rzeczywiście foobar jest usługą).
Gdy naprawdę potrzebujesz mówić o wartości logicznej, możesz przejść do „set / reset”, „set to true” i „set to false”. „Toggle” brzmi całkiem nieźle we wszystkich kontekstach.
A jeśli pracujesz w sklepie boolowskim (cokolwiek to może znaczyć), prawdopodobnie potrzebujesz więcej słów niż oferuje słownik. W takim przypadku prawdomówność i fałszowanie są po prostu częściami twojego mikrospeaka .
źródło
signal = HighVoltage
lubsignal = Active
jest znacznie jaśniejsze niż IMHOsignal = true
.isStarted
,isActive
,isCaseSensitive
,mockConnection
, ... @PieterB: I częściowo zgadzam się z tobą. „Set boolean” nie oznacza z natury ustawiania go na true. Jednak „UstawisActive
flagę” można rozsądnie zinterpretować w ten sposób, że oznacza ustawienie wartości true.signal = true
jest wprawdzie niejasne, ale jeśli masz zamiar użyćsignal = Active
, równie dobrze możesz użyćisSignalActive = true
. Należy pamiętać, że dotyczy to głównie deskryptorów, które wyraźnie się wykluczają i są dokładnymi uzupełnieniami. Aktywny / nieaktywny pasuje do rachunku. Wysokie napięcie nie, ponieważ „niezbyt wysokie napięcie” może np. Oznaczać „niskie napięcie” lub „niskie lub średnie napięcie”. W drugim przypadku argument boolowski oczywiście nie ma zastosowania. W pierwszym przypadku tak.Lubię „set” / „clear”, ale bądź ostrożny z dwuznacznością w swoim frazowaniu. Jak zauważył Filip , „ustaw zmienną bool” może oznaczać zapisanie pewnej wartości do zmiennej. Ale „ustawianie flagi” jest bardziej jasne.
Terminologia pokrewna: przekształcenie liczby całkowitej 0 / niezerowej w wartość 0/1 nazywa się „booleanizing” .
Jeśli faktycznie używasz wartości 0/1 jako liczby całkowitej (zamiast true / false
bool
), możesz chcieć użyć tego słowa. W przeciwnym razie prawdopodobnie pojawi się tylko wtedy, gdy mówisz o koszcie operacji, które musi wykonać kompilator. (Lub jeśli ręcznie wektoryzujesz za pomocą porównania SIMD w celu uzyskania bitów zero-zero / all-one w każdym elemencie wektorowym).W C i C ++ a
bool
może domyślnie przekonwertować z powrotem na liczbę całkowitą jako 0 lub 1, a na normalnych implementacjachbool
jest przechowywana jako wartość jednobajtowa, która jest równa 0 lub 1 (nie tylko dowolna wartość niezerowa). Pozwala to na wydajnea && b
, ale w praktyce wiele kompilatorów C nie przeszło optymalizacji .Ta funkcja kompiluje się z wieloma instrukcjami (bez instrukcji
ret
) w większości architektur. (MIPS jest interesującym wyjątkiem, posiadającym instrukcje porównania do rejestru zamiast oddzielnego rejestru znacznik / kod stanu). w eksploratorze kompilatorów Godbolt dla x86-64, MIPS i ARM thumb możemy zobaczyć, że wersja x86-64 to:Przepraszam, ten przykład tego, co booleanizacja ma trochę duży / nie na temat!
źródło
Myślę, że „ustawione
Foobar
na prawdę” i „ustawioneFoobar
na fałsz” są proste i zwięzłe. Nie wydaje mi się, żeby te frazy zawierały pojedyncze słowa, a kiedy trzeba być zarówno technicznym, jak i precyzyjnym, czasem lepiej jest być trochę nieprzyjemnym niż ryzykować zamieszanie odbiorców.źródło
„Ustawienie” jest poprawnym sposobem opisania aktu przypisywania wartości zmiennej. Jeśli chcesz się tym zająć, możesz nazwać to „przydziałem”, ale „zestaw” jest bardzo rozpowszechniony. W rzeczywistości idiomatyczną Javą jest pisanie
setFoobar()
(igetFoobar()
) metod wykonywania przypisań. C # idzie o krok dalej z definicjamiget
iset
właściwościami.Jeśli chodzi o twój drugi punkt na temat używania „prawda” i „fałsz” na „poprzez implikację, powiedz moim słuchaczom, że mamy do czynienia ze zmienną boolowską”, już mówisz swoim słuchaczom, że zmienna jest logiczna, kiedy mówisz:
źródło
isFoobar()
Można również użyć Asercji lub Wycofania , najczęściej mówiąc o zdaniach, a nie prostych zmiennych, na przykład w Prologu. Zwykle istnieją różne terminy w zależności od tego, co reprezentuje wartość logiczna, zamiast jednego ogólnego terminu dla wszystkich języków posiadających wartości logiczne (ustaw / wyczyść flagę lub bit, włącz / wyłącz urządzenie lub tryb, zapewnij / wycofaj propozycję, prawdopodobnie więcej).
źródło
Zmiana wartości logicznej z
true
nafalse
lub odwrotnie nazywa się negacją .Aby ustawić wartość boolean na,
false
mówi się, że fałszuje wartość boolean. Zrozumiałbym cię, gdybyś powiedział „prawdę”, ale to nie brzmi dobrze. Nie jestem pewien, co to czasownik na zrobienie czegośtrue
, więc może być właściwe.Poczekam na przyjście kogoś z lepszą odpowiedzią, zanim zaczniesz używać „prawdy” chcąc nie chcąc.
źródło
Wartość logiczna jest równoważna SPST (jednobiegunowe, pojedynczy Throw) elektrycznego: jedna Okazuje się na lub poza .
źródło
done
zmienną” lub „error
Zmienna jest wyłączona” oba brzmią nieco, przynajmniej dla mnie. Alternatywy sugerowane przez inne odpowiedzi wydają się bardziej powszechne - „Ustawdone
zmienną / bool / flag [na true]” lub „error
Flaga zostanie wyczyszczona”.