2010-08-10 99 views
5

Tengo entendido que el operador condicional (condición? Consecuencia: alternativa) a menudo se denomina "operador terciario" y "operador ternario".¿Diferencia entre terciario y ternario?

¿Cuál es la diferencia entre estos términos?

Respuesta

6

Nunca he oído hablar del operador "terciario", solo "ternario". Supongo que es un abuso de lenguaje.

2

Uno de ellos es incorrecto. Ternary proviene del hecho, hay tres argumentos utilizados (los operadores binarios usan dos argumentos). Tertiary viene de third y es incorrecto.

10

El Terciario es un período geológico, de hace 65 millones a 1,8 millones de años.

En serio, sin embargo, "terciario" significa "tercero en el rango" - no necesariamente en valor, pero tal vez secuencialmente, como en la educación primaria, secundaria y terciaria. Desea un término que se relacione con la participación de tres argumentos, y eso es "ternario", y va con "binario" y "unario".

+4

Es como Wikipedia. Primero estoy leyendo sobre el ternario, y de repente estoy aprendiendo sobre los períodos geológicos. –

12

Se debe llamar el "operador condicional". "Operador ternario" significa que acepta tres operandos. Como es el único operador común que lo hace, a veces se lo llama "el" operador ternario. El hecho de que solo haya uno es una coincidencia. El "operador terciario" es aún más erróneo. Significa algo así como "el tercer operador más importante".

+0

El origen de "terciario" fue probablemente un malentendido/error ortográfico de "ternario?" –

1

De Wikipedia:

En informática un operador ternario (a veces incorrectamente llamada a un operador terciario) es un operador que toma tres argumentos.

Nunca lo he oído llamar el "operador terciario". Entonces, la diferencia es que usar uno te hará parecer un novato. Supongo.

1

una es correcta y una es incorrecta

un ternary operator es un operador con 3 entradas por ejemplo, una? b: c, tiene arity de 3

un operador tertiary significaría simplemente el tercer operador? esto realmente no tiene ningún significado

8

"Operador condicional" es el nombre correcto. Es esternary operator, el único en muchos idiomas, por lo que a veces se conoce como el operador ternario.

No creo que sea correcto llamarlo "terciario". Esa palabra significa algo así como "la tercera opción", algo así como primario y secundario sería primero y segundo.

+0

Me pregunto qué otras cosas podría querer un operador de exactamente tres operandos para hacer? Puedo pensar en dos cosas generales: calcular c^((c^b) & a), evaluar c una vez (una versión en modo bit de? :) y determinar si un elemento está dentro de un cierto rango. No he visto ninguno de los incluidos en un lenguaje como operador ternario (aunque algunos idiomas ofrecen medios para realizar pruebas de alcance). – supercat

+0

@supercat: la comprobación de rango es un buen ejemplo. No sé cuántas veces he querido escribir 'if (a

+0

De hecho, el operador ternario en C es casi lo único útil que se puede pensar que un operador puede hacer que una función no puede, al menos no sin un estilo de soporte de expresión lambda que AFAIK no proporciona ningún lenguaje (podría ser útil para permitir que una función acepte como argumento a un delegado que devolverá un valor específico; el argumento para dicha función solo se evaluará si la función llama al delegado). – supercat

4

Si se llama terciario, es erróneo.

terciaria significa "tercera [nivel]", mientras que ternarias significa "que tienen tres partes." Estas no son definiciones de programación, solo lo que significan las palabras.

Claramente, el operador es ternario (1 ? 2 : 3;), pero terciaria no tiene sentido en este caso.