Coma como separador vs. coma como delimitador

12

En este video , el orador dice:

  

"Algunas personas se confunden acerca de cómo funcionan las comas. Piensan que   Deben ser delimitadores en lugar de separadores. Ahora puedes pensar en   de cualquier manera. "

No entiendo la diferencia entre un delimitador y un separador (si lo hay). La implicación en el video es que ahora (las comas que se arrastran son válidas), uno puede pensar en ellos como delimitadores, en lugar de separadores ...

Por cierto, el idioma en cuestión es JavaScript. Desde mi entendimiento, el token de coma tiene dos significados:

  • como operador (raramente usado)
  • como separador (en listas de parámetros y argumentos, literales de matrices y objetos, etc.)

No estoy seguro de cómo encaja un delimitador de coma en esto ...

    
pregunta Šime Vidas 30.12.2011 - 21:22

2 respuestas

15

Si considera la coma como separador, usa una coma entre dos elementos de una secuencia para separarlos, si lo considera un delimitador, colóquela después de cada elemento para indicar dónde termina un elemento. Vea los ejemplos a continuación:

La coma como separador

var myCars = ["Saab", "Volvo", "BMW" ];

La coma como delimitador

var myCars = ["Saab", "Volvo", "BMW", ];

Creo que el video dice que puedes pensar en comas como separadores y delimitadores porque los dos ejemplos de matrices anteriores son válidos. Por otro lado, en Javascript solo puedes usar la coma como separador en la lista de parámetros de una función, por ejemplo,

foo(a, b, c) // separator, OK

es válido mientras que

foo(a, b, c,) // delimiter, NOT OK!

no es válido.

EDIT

Según tengo entendido, según la página de wikipedia, un separador es un caso especial de un delimitador , es decir, uno que se coloca entre las diferentes regiones de texto cuyos límites necesitan ser marcados De hecho, la página de wikipedia nombra valores separados como ejemplo de uso de delimitadores. Por lo tanto, en general, puede utilizar los delimitadores de diferentes maneras: antes, después, en ambos lados de la parte del texto que se va a marcar.

La razón por la que interpreté delimitador como "marcador que se coloca después de un elemento" en el contexto de Javascript fue motivada por el ejemplo de matriz literal, que también es válido para C, C ++ y Java ( Creo que he visto al menos una pregunta sobre el desbordamiento de pila con respecto a este tema).

Otro ejemplo de uso similar pero diferente de un carácter es el de punto y coma como delimitador de la declaración (C, C ++, Java, Ada, ...) y como separador de la declaración (Pascal). Por lo tanto

if (a > 0)
    printf("Positive\n");
else
    printf("Non positive\n");

es el código C correcto mientras que

IF a > 0 THEN
    WriteLn('Positive'); (* Syntax error here! *)
ELSE
    WriteLn('Non positive');

no es un código Pascal correcto.

¿Quizás terminator sería un término mejor / menos ambiguo que delimitador ? P.ej. uno podría formular la cita de la siguiente manera: "Algunas personas se confunden acerca de cómo funcionan las comas. Piensan que deberían ser terminadores de elementos en lugar de separadores de elementos . Ahora (en muchos casos) puedes pensar en ellos de cualquier manera ".

    
respondido por el Giorgio 30.12.2011 - 21:45
7

Se colocaría un separador entre dos valores, separándolos.

one,two,three

Un delimitador delimitaría un campo, estaría en ambos lados.

,one,two,three,

Cuando se toma de esta manera, hace poca diferencia, siempre y cuando uno pueda extraer los campos separados.

Este es un problema completamente diferente al uso de una coma en un lenguaje de programación como javascript. Se trata de delimitar / separar valores dentro de una cadena.

    
respondido por el Oded 30.12.2011 - 21:41

Lea otras preguntas en las etiquetas