Programmering 1 för gymnasiet med ruby/Grunderna i ruby

From Wikibooks
Jump to navigation Jump to search


Det finns en del saker som är generellt och grundläggande i ruby och här följer de allra vanligaste sakerna som det är troligast att du som nybörjare kör fast i, eller undrar över.

Kommentera kod[edit]

Det är viktgt att man kommenterar kod. Just nu och i ett litet projekt kommer du ihåg allting, men när projektet börjar bli flera sidor långt och kanske har legat obearbetat en månad eller två kommer du garanterat att ha glömt det mesta som saknar kommentarer. Dessutom är det mycket lättare för andra, din lärare t.ex. att sätta sig in i hur din kod fungerar.

I ruby använder man brädhögs" symbolen (eller hastag) # för att skapa en kommentar på en rad. Det som finns bakom # bryr sig ruby inte om.

#Detta är en kommentar
name = "Zlatan" #Här kan man skriva kommentaren på samma rad, efter rubykoden.
#Man kan skriva flera
#rader med kommentarer
#efter varandra om man vill.

Om man vill skriva längre textstycken i koden som kommentar kan det vara jobbigt att skriva in en "#" i början av varje rad. Då kan man istället skriva:

 =begin
 Mellan Begin och end med likamedtecken framför
 är all text en kommentar och 
 ruby struntar totalt i den texten
 =end


Startrad för Unix[edit]

Vanligtvis har du en speciell kommentarsrad längst upp i en ruby kod som ser ut som en kommentar men som inte är det. Den raden är det enda undantaget till regeln om kommentar bakom brädhögstecken och kallas för Shebang. Raden brukar se ut så här:

#!/usr/bin/env ruby

Den texten pekar ut hur systemet skall hitta ruby när system baseras på Unix, som Linux t.ex. när olika rubyscript skall köras och den textraden bör få vara kvar om koden skall användas i olika operativsystem. Du kan ju själv, om du sitter med Ubuntu t.ex. kontrollera om du har programmet env i mappen usr/bin/.

Om du använder Windows kan du i princip helt utesluta textraden, men den tar inte mycket plats och det skadar inte att den är kvar.

Puts eller print?[edit]

Om du surfar runt på Internet och tittar på olika exempel kommer du att stöta på att man skriver

puts 3

på en del platser, men kanske

print 3

på andra platser. Båda sätten skriver ut siffran 3 på skärmen, så vad är då skillnaden? Det är helt enkelt så att print inte lägger till en radbrytning på slutet medan puts gör det. Ibland vill man ha radbrytning men ibland blir det helt fel, därför finns de två olika alternativen. Pröva att skriv:

puts 1
puts 2
puts 3
print 1
print 2
print 3 

och kör därefter filen. Du kommer att se:

1
2
3
123

Gets tillsammans med puts[edit]

Som du såg ger puts text som skrivs ut på skärmen, men om du själv vill skriva in något som används i programmet, hur gör du då? Jo, då använder du kommandot gets

puts "Vad heter du?" 
name = gets 
print "Hej på dig "
print name
print "!"

Anta att du heter Zlatan, då blir resultatet:

Hej på dig Zlatan
!

Varför blir det så? Varför blir det ny rad efter det att namnet skrivits ut? Förklaringen finns här nedanför.

Ett inbyggt irritationsmoment är att det, precis som i puts, finns en inbyggd "ny rad" funktion i gets. Det innebär att om du skapar ett klassiskt program där man skriver J eller N för ja eller nej som svar på en fråga så kommer du att skriva bokstaven + ny rad och då fungerar inte programmet. Då måste du använda kommandot chomp! som tar bort den sista bokstaven i ett ord, det fungerar så här:

puts "Vill du ha rast? skriv J för ja eller N för nej" 
ja_eller_nej = gets 
ja_eller_nej.chomp! #Här hugger vi bort det osynliga tecknet för ny rad
if ja_eller_nej == "J" #Om man skrev bokstaven J
  puts "Ut i solen med dig"
  else #Om man skrev vilken annan bokstav som helst utom J
  puts "Då får du jobba en stund till"
end

Kom ihåg att ruby är känsligt för små- och stora bokstäver. Bokstaven J är inte alls samma som bokstaven j.

Källor till avsnittet:

http://pine.fm/LearnToProgram/?Chapter=01