stringEmpezando con una cuerda


Observaciones

Esta sección proporciona una descripción general de qué cadena es y por qué un desarrollador puede querer usarla.

También debe mencionar cualquier tema grande dentro de la cadena y vincular a los temas relacionados. Dado que la Documentación para la cadena es nueva, es posible que deba crear versiones iniciales de esos temas relacionados.

Versiones

Versión Observación Fecha de lanzamiento
Cuerda ASCII 7 bits 1963-06-17
UTF-8 8 bits por defecto, longitud variable a través de sustitutos 1992-09-30
UCS-2 16 bits, como UTF-16 sin sustitutos, usaron mi Microsoft Windows NT 1993-07-23
UTF-16 16 bits por defecto, longitud variable a través de sustitutos 1996-07-31

Instrumentos de cuerda

Una cadena es una secuencia de caracteres literales. Hasta la fecha, las cadenas son compatibles con todos los lenguajes de programación modernos, 1 pero no hay consenso entre los diseñadores de idiomas sobre cómo deben clasificarse las cadenas. En lo que respecta al diseño del lenguaje de programación, hay dos preocupaciones principales a tener en cuenta.

  1. ¿Debería tratarse una cadena como un valor primitivo o compuesto?
  2. ¿Qué operaciones de cadena deben ser proporcionadas por el propio lenguaje? 2

Al hacer que una cadena sea un valor primitivo, las operaciones de cadena proporcionadas por el lenguaje están integradas; y no se puede definir en el lenguaje mismo. Esto permite ciertas optimizaciones a nivel de compilador, específicamente con respecto al diseño de la memoria y la reutilización de cadenas mediante el llamado conjunto de cadenas. La compensación radica en que no se pueden usar reemplazos directos para las operaciones de cadena, y tales funciones deberían llamarse mediante llamadas a funciones normales, mientras que la sintaxis para el uso de operaciones integradas suele ser muy diferente. La consecuencia es que si se descubren algoritmos más efectivos, uno no puede simplemente cambiar la biblioteca de cadenas que está utilizando. Un ejemplo artificial fue tener búsqueda de subcadenas como parte del conjunto de características principales antes de que se desarrollara el algoritmo de búsqueda de cadenas de Boyer-Moore.

A la inversa, al definir una cadena como un valor compuesto, como una matriz de caracteres, todas las operaciones de matriz habituales se aplican automáticamente a las cadenas. Sin embargo, esto hace que todas las cadenas dentro del lenguaje tengan una longitud fija. 3

En última instancia, otro enfoque es representar cadenas como una lista de caracteres que, al igual que con las matrices, permite que la representación herede todas las operaciones de lista.

1 Guarda los más esotéricos como Piet.
2 Los lenguajes generalmente ofrecen comparaciones de cadenas, principalmente la igualdad, concatenando cadenas con otras cadenas, sustituyendo caracteres individuales y subcadenas y ordenando lexográficas de cadenas. 3 generalmente