Esiste una terminologia per "true" ing, "false" ing e per attivare un booleano? [chiuso]

23

Diciamo che sto cercando di descrivere il mio codice in una riunione tecnica.

First, I set the boolean foobar to true

e

Second, I set the boolean foobar to false

sembra un po 'prolisso. Se foobar è stato attivato, potrei probabilmente dire

Third, I toggle foobar

Con implicazione qui, sai che è un booleano. Quindi non dovrei essere in grado di:

Fourth, I Truthify foobar

e

Fifth, I Falsify foobar

Quale sarà anche per implicazione, dire ai miei ascoltatori che abbiamo a che fare con una variabile booleana? C'è una terminologia adeguata per questo? Grazie.

    
posta Akiva 04.05.2018 - 04:20
fonte

8 risposte

53
  • L'impostazione di un valore su true è impostazione it
  • Impostarlo su falso è cancellarlo .
  • La modifica del valore corrente è attiva / disattiva .

Puoi anche usare "impostandolo su true" e "impostandolo su" , ovviamente.

    
risposta data 04.05.2018 - 07:17
fonte
66

Se possibile, anziché concentrarti sul valore booleano, dovresti cercare di descrivere ciò che rappresenta. Alcuni esempi:

  • un servizio? start / stop invece di started = true / false
  • un effetto speciale in un motore di gioco? on / off
  • un segnale elettrico? set / reset
  • ...

In questo modo parleresti in termini più naturali. E così nel tuo incontro, invece di "rendere verosimile il foobar e poi falsificarlo", semplicemente "avvii il combattimento e poi fermalo" (se foobar è un servizio, in effetti).

Quando hai davvero bisogno di parlare di un valore booleano, puoi usare "set / reset", o "set to true" e "set to false". "Toggle" suona molto bene in tutti i contesti.

E se lavori in un negozio booleano (qualunque cosa ciò possa significare) allora probabilmente hai bisogno di più parole di quelle che il dizionario ha da offrire. In tal caso, la verità e la falsificazione sono semplicemente parti del tuo microspeak .

    
risposta data 04.05.2018 - 06:35
fonte
2

Mi piace "set" / "clear", ma fai attenzione all'ambiguità del tuo fraseggio. Come segnala Filip , "impostare la variabile bool" potrebbe essere interpretato come la scrittura di un valore nella variabile. Ma "impostare la bandiera" è più chiaro.

Terminologia correlata: trasformare un intero 0 / non zero in un valore 0/1 è chiamato "booleanizing" .

Se in realtà utilizzi il valore 0/1 come numero intero (anziché come vero / falso bool ), potresti voler usare quella parola. Altrimenti probabilmente si presenterà solo se stai parlando del costo delle operazioni che il compilatore deve eseguire. (Oppure se stai vettorizzando manualmente con un confronto SIMD per produrre bit tutto-zero / tutto-uno in ogni elemento vettore).

In C e C ++, un bool può convertire implicitamente in un numero intero come 0 o 1 e nelle normali implementazioni bool è memorizzato come valore a un byte che è 0 o 1 (non solo qualsiasi non -zero valore). La percentuale consente un efficiente a && b , ma in pratica molti compilatori C hanno perso le ottimizzazioni .

bool booleanize(int a) { return a; }   // C++

Questa funzione compila su più istruzioni (escluso ret ) sulla maggior parte delle architetture. (MIPS è un'eccezione interessante, con istruzioni di confronto in registro invece di un registro flag / condition code separato). sul explorer del compilatore Godbolt per x86-64, MIPS e pollice ARM , possiamo vedere la versione x86-64 è:

    test    edi, edi    # set flags according to   a & a
    setne   al
    ret                 # return value in AL, the low byte of RAX

Spiacente questo esempio di ciò che la booleanizzazione è un po 'grande / fuori tema!

    
risposta data 05.05.2018 - 17:43
fonte
0

Penso che "imposta Foobar su true" e "imposta Foobar su false" siano semplici e concise. Non credo ci siano parole individuali per queste frasi, e quando hai bisogno di essere sia tecnico che preciso, a volte è meglio essere disposto a essere un po 'prolisso piuttosto che rischiare di confondere il pubblico.

    
risposta data 04.05.2018 - 21:58
fonte
-1

"Impostazione" è il modo corretto per descrivere l'atto di assegnare un valore a una variabile. Se vuoi essere pedante, puoi chiamarlo "assegnazione", ma "impostare" è molto diffuso. Di fatto, è idiomatico Java scrivere metodi setFoobar() (e getFoobar() ) per eseguire l'assegnazione. C # prende un ulteriore passo avanti con get e set definizioni di proprietà.

Riguardo al tuo secondo punto sull'uso di "verità" e "falsificazione" su "implicitamente, dì ai miei ascoltatori che abbiamo a che fare con una variabile booleana", stai già dicendo ai tuoi ascoltatori che la variabile è booleana quando dici:

I set Foobar to true

    
risposta data 04.05.2018 - 18:45
fonte
-1

Assert o Retract possono anche essere usati, più spesso quando si parla di proposizioni piuttosto che di variabili semplici, ad esempio in Prolog. Di solito ci sono termini diversi a seconda di cosa rappresenta il booleano, piuttosto che un termine generale per tutte le lingue con valori booleani (imposta / cancella o bit, abilita / disabilita dispositivo o modalità, asserisci / ritratta proposizione, probabilmente di più).

    
risposta data 05.05.2018 - 10:23
fonte
-1

Per cambiare il valore di un booleano da true a false , o viceversa si chiama negando .

Per impostare un valore booleano su false viene detto come falso il booleano. Ti capirei se dicessi "verità", tuttavia, questo non sembra giusto. Non sono sicuro di cosa sia il verbo per creare qualcosa true , quindi potrebbe essere giusto.

Aspetterei che arrivi una persona con una risposta migliore prima di iniziare a usare "truthify", volenti o nolenti.

    
risposta data 04.05.2018 - 04:45
fonte
-3

Un booleano è l'equivalente di un interruttore elettrico SPST (single pole, single throw): uno lo trasforma on o off .

    
risposta data 04.05.2018 - 19:17
fonte

Leggi altre domande sui tag