Digamos que estou tentando descrever meu código em uma reunião técnica.
Primeiro, defino o booleano
foobar
comotrue
e
Segundo, defino o booleano
foobar
comofalse
parece um pouco prolixo. Se foobar
foi alternado, eu provavelmente poderia dizer,
Terceiro, eu alterno
foobar
Por implicação aqui, você sabe que é um booleano. Portanto, eu não deveria ser capaz de:
Quarto, eu truthify foobar
e
Quinto, eu falsifico foobar
O que também implicará dizer aos meus ouvintes que estamos lidando com uma variável booleana? Existe terminologia adequada para isso? Obrigado.
terminology
boolean
Akiva
fonte
fonte
Respostas:
Você também pode usar "configurando como true" e "configurando como false" , é claro.
fonte
Se possível, em vez de focar no valor booleano, tente descrever o que ele representa. Alguns exemplos:
Dessa forma, você falaria em termos mais naturais. E, portanto, em sua reunião, em vez de "falsificar o foobar e depois falsificá-lo", você simplesmente "iniciava o foobar e depois parava" (se foobar é um serviço, de fato).
Quando você realmente precisa falar sobre um valor booleano, pode ir com "set / reset" ou "set to true" e "set to false". "Alternar" soa bem em todos os contextos.
E se você trabalha em uma loja booleana (o que isso possa significar), provavelmente precisará de mais palavras do que o que o dicionário tem a oferecer. Nesse caso, verdade e falsificação são simplesmente partes do seu microspeak .
fonte
signal = HighVoltage
ousignal = Active
é IMHO muito mais claro quesignal = true
.isStarted
,isActive
,isCaseSensitive
,mockConnection
, ... @PieterB: Eu concordo parcialmente com você. "Definir o booleano" não significa inerentemente configurá-lo como true. No entanto, "Definir oisActive
sinalizador" pode ser razoavelmente interpretado para significar configurá-lo como verdadeiro.signal = true
De fato, não está claro, mas se você for usarsignal = Active
, poderá usá-loisSignalActive = true
. Observe que isso se aplica principalmente a descritores que são claramente complementares mutuamente exclusivos e exatos. Ativo / Inativo se encaixa na conta. Alta tensão não, pois "não alta tensão" poderia, por exemplo, "baixa tensão" ou "baixa ou média tensão". Neste último caso, o argumento booleano obviamente não se aplica. No primeiro, ele faz.Eu gosto de "set" / "clear", mas tenha cuidado com a ambiguidade no seu fraseado. Como Filip destaca , "definir a variável bool" pode significar escrever algum valor para a variável. Mas "definir a bandeira" é mais claro.
Terminologia relacionada: transformar um número 0 / diferente de zero em um valor 0/1 é chamado "booleanizing" .
Se você realmente usar o valor 0/1 como um número inteiro (em vez de verdadeiro / falso
bool
), convém usar essa palavra. Caso contrário, provavelmente só surgirá se você estiver falando sobre o custo das operações que o compilador deve executar. (Ou se você estiver vetorizando manualmente com um SIMD compare para produzir todos os bits zero / todos um em cada elemento do vetor).Em C e C ++, a
bool
pode implicitamente converter novamente em um número inteiro como 0 ou 1, e em implementações normaisbool
é armazenado como um valor de um byte que é 0 ou 1 (não apenas qualquer valor diferente de zero). O permite eficientea && b
, mas na prática muitos compiladores C perderam otimizações .Essa função é compilada para várias instruções (não incluindo a
ret
) na maioria das arquiteturas. (MIPS é uma exceção interessante, tendo instruções de comparação em registro em vez de um registro de sinalizador / código de condição separado). no Godbolt compiler explorer para x86-64, MIPS e ARM thumb , podemos ver que a versão x86-64 é:Desculpe este exemplo do que a booleanização é um pouco grande / fora de tópico!
fonte
Eu acho que "definido
Foobar
como verdadeiro" e "definidoFoobar
como falso" são diretos e sucintos. Não acredito que haja palavras individuais para essas frases, e quando você precisa ser técnico e preciso, às vezes é melhor estar disposto a ser um pouco prolixo do que arriscar confundir seu público.fonte
"Configuração" é a maneira correta de descrever o ato de atribuir um valor a uma variável. Se você quisesse ser pedante, poderia chamá-lo de "atribuição", mas "definir" é muito prevalente. De fato, é Java idiomático escrever
setFoobar()
(egetFoobar()
) métodos para executar a atribuição. C # leva um passo adiante comget
eset
definições de propriedade.Com relação ao seu segundo ponto sobre o uso de "truthify" e "falseify" para "por implicação, diga aos meus ouvintes que estamos lidando com uma variável booleana", você já está dizendo aos ouvintes que a variável é booleana quando você diz:
fonte
isFoobar()
Afirmar ou Recolher também pode ser usado, geralmente quando se fala de proposições em vez de variáveis simples, por exemplo, no Prolog. Geralmente, existem termos diferentes, dependendo do que o booleano representa, em vez de um termo geral para todos os idiomas com valores booleanos (definir / limpar sinalizador ou bit, ativar / desativar dispositivo ou modo, afirmar / retirar proposta, provavelmente mais).
fonte
Para alterar o valor de um booleano de
true
parafalse
ou vice-versa é chamado negar .Definir o valor de um booleano para
false
é dito como falsificando o booleano. Eu o entenderia se você dissesse "verdade", no entanto, isso não parece certo. Não sei ao certo qual é o verbo para fazer algotrue
, então pode estar certo.Eu esperaria que alguém com uma resposta melhor aparecesse antes que você começasse a usar o "truthify" à vontade.
fonte
Um booleano é o equivalente a um interruptor elétrico SPST (pólo único, arremesso único): um é ligado ou desligado .
fonte
done
variável" ou "Aerror
variável está desativada" soa um pouco, pelo menos para mim. As alternativas sugeridas por outras respostas parecem mais prevalentes - "Defina adone
variável / bool / flag [como true]" ou "Oerror
sinalizador está limpo".