www.Deserveit.se >

Berörda ämnen

Programmering diverse

Andra artiklar inom samma ämne

Slash, backslash och forwardslash

Tillbaka till artiklar

Innehållsförteckning

Inledning

Tre namn, två varianter

Detta är en tämligen rörig grej som ställer till det i huvudet för många nybörjare. Dessa tre benämningar syftar till TVÅ olika tecken, nämligen \ och /.

Microsofts fel?

Tyvärr beror röran till stor del på att Microsoft för många år sedan hittade på en egen standard och krånglade till det redan befintliga systemet, men nu ska vi reda ut det!

Forward slash finns inte

Forward slash är något modernt slarvigt uttryck för att specificera att det är slash man menar och inte backslash.

Forward slash och slash är alltså samma sak, men det heter slash.

Slash (/)

Det traditionella snedstrecket

Slash är ett vanligt snedstreck, som bland annat används till division och ser ut såhär (/). Ett vanligt snedstreck som lutar åt höger och skrivs genom att trycka SHIFT + 7.

Kataloger och sökvägar

Slash används också för att avskilja filer och kataloger i sökvägar. T.ex: "mina-filer/data/en-katalog/minfil.txt".

Däremot när Microsoft slog igenom med Windows (egentligen även före detta, på DOS-tiden) så beslutade de sig för att använda backslash till katalogstrukturen istället. Då lärde de upp folket att skriva "fel tecken" i sökvägar.

"mina-filer/data/en-katalog/minfil.txt" skulle istället bli:
"mina-filer\data\en-katalog\minfil.txt"

Anledningen till detta var att Microsoft redan hade använt slash som växeltecken (för parametrar till filer), så tecknet var så att säga upptaget. Däremot adderade Microsoft med tiden stöd för båda varianterna, så man kan normalt skriva vilket som.

På nätet används slash

Många reagerar på att man har en typ av slash på sin hemdator och en annan när man surfar på nätet.

Logiken är att den dator du ansluter dig mot när du surfar normalt inte är en windowsdator, och även när den är windowsbaserad så används slash-tecknen rätt. Det rätta systemet är alltså att använda / när det är fråga om katalogstruktur - vilket det är på nätet.

Även http:// använder vanliga slash.

Dock förstår ofta webbläsaren vad du vill göra även då du skriver fel och ersätter då automatiskt dina felvända tecken med korrekta sådana.

Språkmässiga egenskaper

Slash är ju så att säga det vardagliga snedstrecket och används därför i många sammanhang. Det används i vardaglig språktext som avskiljare i sammanhang såsom "slash är ett perfekt tecken att använda i programmering och/eller vanlig text." Det används också ibland för att separera tecken i förkortningar (vilket normalt anses vara inkorrekt) i t.ex. R/C, N/A, W/O, B/W (radio control, not available, without, between alternativt black and white).

Backslash (\)

Som tidigare nämnt används backslash till sökvägar i Microsofts operativsystem. Mer om det behöver vi nog inte ta upp. Backslash skrivs genom att trycka ALT GR + tecknet till höger om 0 (+).

Backslash används normalt som escapetecken när det är tal om programmering.

En sträng i ett programmeringsspråk ser ofta ut såhär:

"detta är en sträng" ELLER
'detta är en sträng'

Citattecknen / apostroferna används för att förklara för programmet att det är en sträng. Men vad händer om man vill lagra ett citattecken i en sträng?

"En gång sa Tobias: "Det var bättre förr" - visst är det en lögn?"

Det som händer är att efter Tobias: avbryts strängen, och efter förr börjar den igen.

Vi gör om det till kod så ser du hur en php-parser skulle uppfatta det.


"En gång sa Tobias: "Det var bättre förr" - visst är det en lögn?"




Vi ser alltså en sträng, sedan ser vi en rad med kod/kommandon sedan en sträng igen på slutet. Strängen blir alltså delad och går bokstavligt talat sönder. Syntax error skulle detta kallas i programmeringsvärlden.

Syftet var inte att ha sönder strängen, syftet var att den skulle innehålla en text med citattecken. Hur löser man då detta? Jo - man escapar citattecknen som det så vackert heter. Man måste förklara för mottagaren av koden (t.ex. en kompilator) att vi absolut inte har intresse av att avsluta strängen när det kommer ett citattecken, utan att det ska behandlas som text - inte som kod.

Det löser vi genom att lägga ett backslash innan de citattecken som ska ignoreras.

Texten blir då såhär:

"En gång sa Tobias: \"Det var bättre förr\" - visst är det en lögn?"

I kod uppfattas det såhär:

"En gång sa Tobias: \"Det var bättre förr\" - visst är det en lögn?"




Nu fungerar det hela betydligt bättre, strängen är fortfarande en hel bit och inte tvådelad med skräp i mitten (detta hade förövrigt också orsakat fel i parsern, så det hade nog blivit helt tomt på skärmen om du försökt använda koden innan vi åtgärdade felet).

Men du behöver inte oroa sig för att ditt backslash skrivs ut, det finns bara med i din kod, resultatet blir rent och fint.

Samma sak gäller med apostrofer. De måste också escapas.

'A' la carte' ska alltså skrivas 'a\' la carte' för att datorn ska tolka det hela rätt.

Specialtecken

Det finns också en hel del specialtecken, ofta "osynliga" sådana som skrivs mha ett inledande backslash, t.ex.
Ny rad: \n och \r (olika för dos, windows, unix)
Tab: \t
Gå till toppen

Skrivet och publicerat av: Tobias Wetterskog
Datum: 070510
Senast ändrad: 070629