2011-02-18 14 views
7

Cosa significano questi operatori fanno in D 2.0:Cosa fanno questi operatori in D 2.0: <> =! <> =! <= !> =

  • <>=
  • !<>=
  • !<=
  • !>=
+0

Quando il tuo titolo contiene l'intera domanda, è probabile che tu voglia essere un po 'più prolisso nella tua domanda ;-) –

+0

@Joachim: Haha okay. Non mi sembrava di aver aggiunto nulla alla domanda ripetendo il titolo, ma grazie comunque per la modifica. :) – Mehrdad

+1

che avresti potuto aggiungere alla leggibilità. Nel carattere del titolo è difficile vedere quali personaggi appartengono insieme e formano un operatore, ad esempio. –

risposta

7

Essi sono utilizzati per i valori che potrebbero essere non ordinato, come ad esempio NaN per galleggianti e doppi. 1 <>= NaN restituisce false, mentre x <>= y restituisce true per qualsiasi coppia di numeri, purché nessuno dei due numeri sia NaN. Gli altri operatori che menzioni funzionano allo stesso modo, mutatis mutandis.

+2

Link alla documentazione: http://www.digitalmars.com/d/2.0/expression.html#floating_point_comparisons – stephan

+0

Grazie! : D @stephan: Grazie per il link! Pensavo di aver guardato dappertutto (la pagina lessicale, la pagina di overload dell'operatore, ecc.) Ma a quanto pare mi ero perso. – Mehrdad

2

La risposta lunga:

Quando si tratta di virgola mobile, due valori si confronta come uno dei A<B, A=B, A>B o non ordinata (se uno è NaN).

Gli operatori rappresentano ogni riga interessante (non costante) in the truth table. Possono essere interpretati come veri test per ciascuno dei casi per i quali l'operatore ha il carattere corrispondente, a meno che non abbia ! nel qual caso il valore è invertito.

1

Sono operatori di confronto in D, proprio come ==, < e >=. In D viene preso in considerazione il valore nan (non un numero). Due numeri in virgola mobile possono non solo confrontare meno, uguale o maggiore, ma anche non ordinati, che è il caso, se uno dei comparands è nan.

Quindi <>= significa meno, uguale o maggiore. In altre parole, <>= significa ordinato.

Gli operatori di confronto che iniziano con un ! restituiscono esattamente l'opposto della loro controparte senza lo !. In particolare, tutti valutano su true, se uno dei comparativi è nan.

Ecco un elenco completo di tutti gli operatori di confronto in D:

  • ==
  • !=
  • >
  • >=
  • <
  • <=
  • !<>=
  • <>
  • <>=
  • !<=
  • !<
  • !>=
  • !>
  • !<>

Puoi trovare questo elenco in the D documentation. I comportamenti di tutti questi operatori sono spiegati qui.

Problemi correlati