Ruby is een geïnterpreteerde, dynamische, reflectieve, objectgeoriënteerde programmeertaal. Ruby is ontwikkeld door Yukihiro Matsumoto en richt zich op eenvoud en productiviteit. De elegante syntaxis stelt ontwikkelaars in staat om code gemakkelijker te lezen en te schrijven.
In deze handleiding gaan we werken met strings in Ruby.
Vereisten
Om de stappen in deze tutorial uit te voeren, heeft u de volgende componenten nodig:
- Een correct geconfigureerd Ubuntu-systeem. Lees meer over het configureren van uw eigen Ubuntu-server op CloudSigma.
- Elke moderne teksteditor, bij voorkeur met syntaxisaccentuering, bijvoorbeeld VS Code, Sublime Text, Atom, Brackets, Vim, enz.
Het gegevenstype String
In programmeren is een string een veelvoorkomend gegevenstype dat elke moderne programmeertaal ondersteunt. Het wordt gekenmerkt door een reeks tekens. De gehele reeks tekens wordt behandeld als één enkel gegeven. Een string kan letters, cijfers en speciale tekens/symbolen bevatten.
Omdat Ruby een pure objectgeoriënteerde programmeertaal is, behandelt het strings als objecten. In tegenstelling tot veel andere talen zijn strings in Ruby veranderlijk. In feite kan de stringwaarde ter plekke worden gewijzigd.
Stap 1 – Strings maken en afdrukken
In Ruby worden strings omgeven door ofwel enkele aanhalingstekens ( ') of dubbele aanhalingstekens ( "). De volgende zijn twee geldige strings in Ruby:
|
1 2 |
'the quick brown fox' "jumps over the lazy dog" |
Om uitvoer naar het consolescherm af te drukken, wordt Ruby geleverd met de print-methode:
|
1 2 |
print 'the quick brown fox' print "jumps over the lazy dog" |
Tijd om dit in de praktijk te brengen. Maak een nieuw Ruby-bestand practice.rb en voer de volgende codes in:
Voer de code uit:
|
1 |
ruby practice.rb |
Zoals verwacht drukt de print-opdracht de opgegeven strings af. Als we de strings op aparte regels willen afdrukken, is het beter om in plaats daarvan puts te gebruiken. Werk de code bij:
|
1 2 |
puts 'the quick brown fox' puts "jumps over the lazy dog" |
Voer vervolgens de code opnieuw uit:
|
1 |
ruby practice.rb |
Stap 2 – Stringvariabelen
Variabelen zijn namen die verwijzen naar een specifieke plaats in het computergeheugen waar een waarde is opgeslagen. We kunnen de gewenste waarde in de variabele opslaan en deze later gebruiken.
Om in Ruby een stringvariabele te declareren, definieert u de variabelenaam en wijst u een stringwaarde toe:
|
1 |
<variable_name> = <string> |
Schrijf de volgende code in practice.rb:
|
1 2 3 4 |
first_half = 'the quick brown fox' second_half = "jumps over the lazy dog" puts first_half puts second_half |
Voer de code uit:
|
1 |
ruby practice.rb |
Hier:
- We hebben twee variabelen gedefinieerd, first_half en second_half, elk met een toegewezen stringwaarde.
- De puts-methode drukt de waarde van de variabelen af.
Stap 3 – String-samenvoeging
Door samen te voegen (concatenatie), kunnen we meerdere strings nemen en ze samenvoegen om een nieuwe string te maken. String-samenvoeging wordt aangeduid met de samenvoegingsoperator ( +). Merk op dat dit symbool ook de optellingsoperator is bij het werken met rekenkundige bewerkingen.
Laten we proberen string-samenvoeging uit te voeren op de strings die we tot nu toe hebben gedeclareerd:
|
1 |
puts "the quick brown fox" + "jumps over the lazy dog" |
Voer de code uit:
|
1 |
ruby practice.rb |
Zoals de uitvoer laat zien, introduceert samenvoeging geen extra tekens tussen de strings. Daarom zijn fox en jumps samengevoegd. We kunnen dit oplossen door een spatie in te voegen na fox:
|
1 |
puts "the quick brown fox " + "jumps over the lazy dog" |
Voer de code uit:
|
1 |
ruby practice.rb |
Nu ziet de uitvoer er beter uit.
String-samenvoeging werkt ook met variabelen. Bekijk het volgende voorbeeld:
|
1 2 |
first_half = "de snelle bruine vos " puts first_half + "springt over de luie hond" |
Voer de code uit:
|
1 |
ruby practice.rb |
Het volgende voorbeeld toont een lange keten van aaneenschakeling:
|
1 2 3 |
username = "cloudsigma" fav_color = "blauw" puts "hallo, " + username + "! je favoriete kleur is " + fav_color + "." |
Voer de code uit:
|
1 |
ruby practice.rb |
Tot nu toe hebben we alleen te maken gehad met string-variabelen. Wat als er verschillende variabelentypen waren? Het volgende programma test dit scenario:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts username + user_id |
Wanneer je dit programma probeert uit te voeren, zal Ruby een foutmelding geven:
|
1 |
ruby practice.rb |
We kunnen de integer echter converteren naar een string om dit probleem te voorkomen:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts username + user_id.to_s |
Hier:
-
De methode to_s converteert de waarde van de variabele naar een string.
Het converteren van getallen naar strings komt vaak voor bij het werken met elementen zoals postcodes, valuta, telefoonnummers en andere numerieke gegevens.
Stap 4 – String-interpolatie
Hoewel string-concatenatie een krachtige functie is, kan het heel snel ingewikkeld worden. In veel situaties zul je waarschijnlijk merken dat je een concatenatie-operator mist ( +), wat tot grote hoofdpijn leidt. Bovendien moet het, bij het werken met verschillende gegevenstypen, eerst naar een string worden geconverteerd. Gelukkig biedt Ruby andere manieren om variabele waarden in een string te injecteren met behulp van de functie string-interpolatie.
Dit is hoe het eruitziet. Bijvoorbeeld, in plaats van het gebruik van:
|
1 |
"hallo, " + username + "!" |
We zullen gebruiken:
|
1 |
"hallo, #{username}!" |
Hoewel de syntaxis er misschien een beetje vreemd uitziet, vereenvoudigt het de code aanzienlijk. Het is niet nodig om handmatig de to_s methode aan te roepen om de waarde van de variabele naar een string te converteren.
Laten we deze nieuwe techniek gebruiken om onze vorige code bij te werken:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts "hallo, #{username}! je gebruikers-ID is #{user_id}" |
Voer de code uit:
|
1 |
ruby practice.rb |
Stap 5 – String-literals en string-waarden
Merk op dat strings die in de code worden gedeclareerd altijd tussen aanhalingstekens staan. Wanneer de uitvoer echter op het consolescherm wordt afgedrukt, zijn er geen aanhalingstekens. Er is duidelijk een verschil tussen beide.
- String-literal: Het is de string die in de broncode is geschreven (inclusief de aanhalingstekens).
- String-waarde: Het is de waarde die op de uitvoer wordt afgedrukt (zonder de aanhalingstekens).
Het volgende is bijvoorbeeld een string-literal:
|
1 |
"hallo wereld" |
De string-waarde ervan zou zijn hallo wereld.
Stap 6 – Escapen van aanhalingstekens en apostrofen
Zoals we hebben laten zien, worden aanhalingstekens en apostrofen gebruikt om strings in de broncode aan te duiden. Dit vormt een probleem: je kunt ze niet rechtstreeks in de string opnemen. Anders veroorzaakt dit problemen. De volgende code toont dit aan:
|
1 |
puts 'it's what it is' |
Er zijn verschillende tactieken om dit probleem te omzeilen.
-
Alternatieve string-syntaxis gebruiken
Dit is de eenvoudigste manier om het probleem te omzeilen. Als je string enkele aanhalingstekens nodig heeft, gebruik dan dubbele aanhalingstekens in de string-literal (en vice versa).
Laten we het vorige voorbeeld corrigeren:
|
1 |
puts "it's what it is" |
Een ander voorbeeld is:
|
1 |
puts 'he said, "hello world"' |
Dit zal echter niet in elke situatie werken. Bijvoorbeeld:
|
1 |
puts "Clousdigma says, "I'm a happy boi!"" |
-
Escape-tekens gebruiken
De backslash ( \) wordt vaak het escape-teken genoemd. Het voorkomt dat Ruby het volgende teken letterlijk interpreteert. Laten we het vorige voorbeeld corrigeren. Gebruik de backslash om te voorkomen dat Ruby de interne dubbele aanhalingstekens als literals interpreteert:
|
1 |
puts "Cloudsigma says, \"I'm a happy boi!\"" |
-
Alternatieve syntaxis gebruiken
Tot nu toe hebben we alleen met enkele en dubbele aanhalingstekens gewerkt om de string literal aan te duiden. De voorgaande voorbeelden zijn echter eenvoudige demonstraties van hoe dit heel snel uit de hand kan lopen. Om dit probleem op te lossen, kunnen we de aanhalingstekens helemaal weglaten en een compleet ander symbool gebruiken om het begin en einde van een string aan te duiden.
Bekijk het volgende voorbeeld eens:
|
1 |
%$the quick brown fox said, "I jumped over the lazy dog"$ |
Hier:
-
- Het symbool % definieert het volgende karakter ( $, in dit geval) als het scheidingsteken van de string.
- De string literal is hier $the quick brown fox said, "I jumped over the lazy dog"$.
Laten we het in de praktijk brengen:
|
1 |
puts %$the quick brown fox said, "I jumped over the lazy dog"$ |
Hier wordt de string in feite als volgt behandeld:
|
1 |
"the quick brown fox said, \"I jumped over the lazy dog\"" |
Het introduceert echter opnieuw het probleem van het escapen van het scheidingsteken als dit in de string wordt gebruikt. Een manier om dit te vermijden is door symbolen te gebruiken die over het algemeen niet in strings voorkomen. Dergelijke symbolen kunnen accolades, rechte haken, enz. zijn:
|
1 |
puts %{"hello, world!", he said} |
Het werkt ook perfect met string-interpolaties:
|
1 2 3 |
username = "cloudsigma" user_id = 5 puts %{hello, #{username}.#{user_id}!} |
Het is ook gebruikelijk om %Q{} en %q{} te gebruiken om strings te definiëren in Ruby-programma's. Hier werkt %Q{} als dubbele aanhalingstekens en %q{} als enkele aanhalingstekens.
Step 7 – Nieuwe regels en lange strings
Bij het werken met strings zullen er situaties zijn waarin je een nieuwe regel of carriage return in de string wilt introduceren. Dit kunnen we doen door de escape-karakters \n (newline) en \r (carriage return) te introduceren.
Bekijk het volgende voorbeeld eens:
|
1 2 |
hello_world = "the quick\nbrown fox\njumps over\nthe lazy dog" puts hello_world |
De string-literal ziet er verwarrend uit, toch? Laten we deze herschikken voor een betere leesbaarheid:
|
1 2 3 4 5 6 7 |
hello_world = "the quick\n" + "brown fox\n" + "jumps over\n" + "the lazy dog" puts hello_world |
In plaats van handmatig de newline-karakters te declareren, kunnen we ook de volgende structuur gebruiken:
|
1 2 3 4 5 6 |
hello_world = "the quick brown fox jumps over the lazy dog" puts hello_world |
Bij deze methode behoudt de string alle spaties. Dit verstoort echter de uitvoer. Verwijder de extra spaties om dit op te lossen:
|
1 2 3 4 5 |
hello_world = "the quick brown fox jumps over the lazy dog" |
Hoewel het probleem met de witruimte is opgelost, vermindert dit de leesbaarheid van de code. We kunnen dit probleem oplossen door een heredoc, een term voor multi-line string literals. De bijgewerkte code zou er als volgt uitzien:
|
1 2 3 4 5 6 7 8 |
hello_world = <<-END the quick brown fox jumps over the lazy dog END puts hello_world |
Vanaf Ruby v2.3 en hoger is er nog een functie beschikbaar, genaamd squiggly heredoc syntaxis. Deze verwijdert de leidende witruimte in de strings. Om een squiggly heredoc uit te drukken, vervang je het koppelteken ( -) door een tilde ( ~):
|
1 2 3 4 5 6 7 8 |
hello_world = <<~END de snelle bruine vos springt over de luie hond END puts hello_world |
Stap 8 – Strings dupliceren
In sommige situaties kan het nodig zijn om een string meerdere keren te herhalen. Ruby maakt het mogelijk om strings op verschillende manieren te dupliceren.
Eén zo'n techniek is het gebruik van de * operator. Over het algemeen wordt deze gebruikt als de vermenigvuldigingsoperator bij getallen. Bij strings wordt het echter de stringreplicatie-operator, die de enkele string zo vaak als nodig herhaalt. Het aantal herhalingen moet een geheel getal zijn.
In het volgende voorbeeld wordt de tekst Boris 5 keer herhaald:
|
1 |
print "Boris" * 5 + "\n" |
Met deze functie kunnen we coole ASCII-art maken. Bekijk het volgende voorbeeld:
|
1 2 3 |
puts "=" * 15 puts "| hello world |" puts "=" * 15 |
Laatste gedachten
Strings zijn onmisbaar bij het programmeren. Deze gids laat zien hoe je met strings werkt in Ruby. We hebben geleerd hoe je strings maakt en verschillende bewerkingen uitvoert, zoals aaneenschakeling, het omgaan met nieuwe regels, aanhalingstekens, enz. Met behulp van string-interpolatie hebben we ook geleerd hoe we variabele waarden beter in strings kunnen integreren. Met de stringreplicatie-operator kunnen we ook een enkele string meerdere keren herhalen.
Hoewel Ruby op zichzelf een uitstekende programmeertaal is, wordt het vaak gecombineerd met het Rails-framework. Ruby on Rails is een open-source webapplicatie-framework. Lees meer over het installeren van Ruby on Rails op Ubuntu. Ruby kan echter ook met andere applicaties werken, zoals MySQL en PostgreSQL.
Veel programmeerplezier!












































Reacties
Nog geen reacties. Wees de eerste.