Quali sono i vantaggi della conversione di stringhe vuote per valutare true rispetto a false? [chiuso]

-2

Quando converti una stringa in un booleano, quali sono i vantaggi di avere un linguaggio di programmazione per valutare una stringa vuota come vera e quali sono i vantaggi di averla valutata su false?

    
posta dallin 07.10.2013 - 19:53
fonte

4 risposte

5

Nel contesto di JavaScript (suppongo che questo sia ciò che ha generato la domanda), una stringa vuota passa a false in un contesto booleano perché consente di utilizzare il modello if (str) . Se una stringa vuota non ha valutato su false (insieme ad altri stati come null o undefined ), dovresti fare quanto segue: if (typeof str !== "undefined" && str != null && str !== "") .

Questo è molto più dettagliato.

Un'interpretazione alternativa è che lo stato predefinito di una primitiva restituisce un valore falso. Per i booleani, questo è falso. Per gli interi, questo è 0. Per le stringhe, sarebbe una stringa vuota. Concettualmente, non esiste alcuna garanzia di null esistenti in un determinato sistema di tipi, un valore dovrebbe avere uno stato predefinito.

    
risposta data 07.10.2013 - 20:15
fonte
3

La conversione di una stringa in booleana vera o falsa e altre conversioni implicite sono noleggiate in questo modo ...

I vantaggi: codice forse più succinto e intelligente; possibilmente più fluidità ed espressività quando si scrive codice velocemente; forse buono per prototipazione o scripting rapido e libero

sono facilmente ponderati da

Svantaggi: confusione, mancanza di portabilità, riduzione della manutenibilità e barriere all'offuscamento intenzionale

A causa

Nascondere la complessità dietro "trucchi" incorporati di ciascuna lingua è inizialmente intelligente e devastante. se il soggetto è complesso, come str può essere un tipo indefinito, str può essere nullo, str può essere definito, non nullo, ma vuoto, tu il programmatore deve essere esplicito su come vuoi affrontarlo. al punto di utilizzo. non sepolto in alcuni documenti sull'API JavaScript

Si noti inoltre che molti di questi pro e contro si applicano anche a un uso eccessivo dell'overloading dell'operatore, che è un caso particolare di, in sostanza.

    
risposta data 07.10.2013 - 21:10
fonte
2

Vantaggi: risparmi due secondi di tempo di codifica per digitare meno.

Svantaggi: il codice è meno evidente, facendo sprecare i due secondi che hai salvato dovendo leggere attentamente e valutare mentalmente la linea di codice ogni volta che la incontri.

    
risposta data 07.10.2013 - 21:24
fonte
0

Considera questo pseudo-codice:

print "First name: " + firstname
if middlename:
  print "Middle name: " + middlename
print "Last name: " + lastname

Questo e molti casi correlati è dove "la stringa vuota è falsa-ish" è utile. Tieni presente che la valutazione diretta dei valori non booleani come booleana è di solito limitato ai linguaggi script-ish che sono stati creati con le interfacce utente in mente.

    
risposta data 07.10.2013 - 19:55
fonte