Sök…


Anmärkningar

Det här avsnittet ger en översikt över vad strängen är och varför en utvecklare kanske vill använda den.

Det bör också nämna alla stora ämnen inom strängen och länka till relaterade ämnen. Eftersom dokumentationen för strängen är ny kan du behöva skapa initialversioner av relaterade ämnen.

versioner

Version Anmärka Utgivningsdatum
ASCII String 7 bitar 1963/06/17
UTF-8 8 bitars standard, variabel längd genom surrogat 1992/09/30
UCS-2 16 bitar, som UTF-16 utan surrogat, använde min Microsoft Windows NT 1993/07/23
UTF-16 16 bitars standard, variabel längd genom surrogat 1996/07/31

strängar

En sträng är en sekvens av teckenbokstäver. Hittills stöds strängar av alla moderna programmeringsspråk, 1 men det finns ingen konsensus mellan språkdesigners om hur strängar ska klassificeras. När det gäller design av programmeringsspråk finns det två huvudsakliga problem att beakta.

  1. Bör en sträng behandlas som ett primitivt eller sammansatt värde?
  2. Vilka strängoperationer ska tillhandahållas av själva språket? 2

Genom att göra en sträng till ett primitivt värde är strängoperationerna som tillhandahålls av språket alla inbyggda; och kan inte definieras på själva språket. Detta tillåter vissa optimeringar på en kompilatornivå - speciellt med avseende på minneslayout och återanvändning av strängar med en så kallad strängpool. Avvägningen ligger i att inte kunna använda drop-byte för strängoperationerna, och sådana funktioner skulle behöva kallas med normala funktionssamtal medan syntaxen för att använda inbyggda operationer vanligtvis är tydligt annorlunda. Konsekvensen är att om och när mer effektiva algoritmer upptäcks kan man inte helt enkelt ändra vilket strängbibliotek man använder. Ett motiverat exempel är att ha substrängsökning som en del av kärnfunktionsuppsättningen före strängsökningsalgoritmen för Boyer – Moore utvecklades.

Omvänt, genom att definiera en sträng som ett sammansatt värde, såsom en matris med tecken, blir alla vanliga arrayoperationer automatiskt tillämpliga på strängar. Detta resulterar dock i att alla strängar inom språket är fast längd. 3

I slutändan representerar ett annat tillvägagångssätt strängar som en lista med tecken som - som med matriser - gör det möjligt för representationen att ärva alla listoperationer.

1 Spara de mer esoteriska som Piet
2 Språk erbjuder vanligtvis strängjämförelser, främst jämlikhet, sammankoppling av strängar med andra strängar, ersättning av enstaka tecken och underlag och lexografisk sortering av strängar. 3 Vanligtvis



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow