De Ruby Language FAQ
Oorspronkelijk opgesteld door: Shugo Maeda. Nu onderhouden door: Dave Thomas met hulp vanAndy Hunt.
Dank aan gotoken for the oorspronkelijke engelse vertaling. Verder dank aan Arima Yasuhiro, John Dell'Aquila, Robert Gustavsson Clemens Hintze, Josh Huber, H Morita, Aleksi Niemelä, Hugh Sasse, Conrad Schneiker, Larry W. Virden, Jim Weirich, en natuurlijk, Matz. $Revision: 1.9 $--$Date: 2002/05/02 04:13:44 $Ruby is een moderne object-georienteerde taal, die elementen van Perl, Smalltalk en Scheme verenigd in een eenvoudige meer krachtige syntax. Dit document bevat vaak gestelde vragen over Ruby met bijbehorende antwoorden. De voorbeeld code in dit document zijn gedraaid onder Ruby version 1.6.7. Een franstalige versie van dit document is beschikbaar op rubyfr.org.
1. Algemene vragen
- 1.1 Wat is Ruby?
- 1.2 Laat eens wat Ruby code zien.
- 1.3 Waarom de naam 'Ruby'?
- 1.4 Wat is de geschiedenis van Ruby?
- 1.5 Waar is de Ruby Home Page?
- 1.6 Is er een Ruby newsgroup?
- 1.7 Is er een Ruby mailing list?
- 1.8 **Changed** Hoe moet ik de mailing list threaden in mutt?
- 1.9 Wat is correct, Ruby or ruby?
- 1.10 Zijn er boeken over Ruby?
- 1.11 Welke editors bieden ondersteuning voor Ruby?
- 1.12 Hoe kan ik Ruby code annoteren met z'n uitkomsten?
- 1.13 Ik begrijp Ruby niet, zelfs niet na het lezen van de handleiding!
2. Hoe is Ruby in vergelijking met...?
3. Ruby installeren
- 3.1 Onder welke operating systems draait Ruby?
- 3.2 Waar vind ik de Ruby source code?
- 3.3 Hoe kom ik bij de development source tree?
- 3.4 Hoe compileer ik Ruby?
- 3.5 **Changed** Hoe maak ik Ruby duidelijk waar mijn libraries zijn?
- 3.6 Zijn er voor-gecompileerde binaries beschikbaar?
- 3.7 Wat is al dat 'cygwin', 'mingw', and 'djgpp' gedoe?
- 3.8 Waarom werkt Tk graphics niet onder Windows?
4. Variabelen, constanten en parameters
- 4.1 Maakt een toekenning een nieuwe copie van een object?
- 4.2 Wat is de scope van een locale variabele?
- 4.3 Wanneer is een locale variabelel toegangkelijk?
- 4.4 Wat is de scope van constante?
- 4.5 Hoe worden parameters doorgegeven?
- 4.6 Veranderd toekenning van een waarde aan een formele parameter de actuele parameter?
- 4.7 Wat gebeurt er als een methode aanroep via aan formele parameter?
- 4.8 Wat betekend het als een
parameter vooraf word gegaan door ``
*
''? - 4.9 Wat betekend het als een
parameter vooraf word gegaan door ``
&
''? - 4.10 Hoe kan ik een default waarde opgeven voor een formele parameter?
- 4.11 Hoe kan ik parameters doorgeven aan een block?
- 4.12 Waarom is mijn object onverwachts veranderd?
- 4.13 Kan de waarde van een constante ooit veranderen?
5. Iterators
- 5.1 Wat is een iterator?
- 5.2 Hoe geef ik een block door aan een iterator?
- 5.3 Hoe word een block gebruikt in een iterator?
- 5.4 Wat doet
Proc.new
zonder block? - 5.5 Hoe kan ik iterators parallel laten runnen?
6. Syntax
- 6.1 Wat betekend
:var
? - 6.2 Hoe krijg ik de waarde van een symbol?
- 6.3 Is
loop
een control structure? - 6.4 Heeft Ruby geen post-test loop?
- 6.5
a + b
geeft een fout! - 6.6
s = "x"; puts s * 10
geeft een fout! - 6.7 Waarom kan ik geen hash
literal doorgeven aan een methode:
p {}
? - 6.8 Ik krijg
def pos=(val)
niet werkend! - 6.9 Wat is het verschil tussen
\1'
and'\\1'
? - 6.10 Wat is het verschil
tussen ``
or
'' and ``||
''?
7. Methodes
- 7.1 Hoe bepaald Ruby welke methode moet worden uitgevoerd?
- 7.2 Zijn
+
,-
,*
... operators? - 7.3 Waar zijn
++
and--
? - 7.4 Al die objecten zijn prima, maar heeft Ruby ook gewone functies?
- 7.5 Waar komen al die op functies lijkende methodes vandaan?
- 7.6 Kan ik toegang krijgen tot de instance variabelen van een object?
- 7.7 Wat is het verschil
tussen
private
andprotected
? - 7.8 Hoe kan ik de zichtbaarheid van een methode veranderen?
- 7.9 Kan een identifier die begint met een hoofdletter de naam van een methode zijn?
- 7.10 Het aanroepen van
super
geeft eenArgumentError!
- 7.11 Hoe roep ik een methode aan met dezelfde naam maar twee niveau's hoger?
- 7.12 Hoe reop ik een ingebouwde methode aan nadat ik haar geherdefinieerd heb?
- 7.13 Wat is een destructieve methode?
- 7.14 Waarom kunnen destructieve methodes gevaarlijk zijn?
- 7.15 Kan een methode meerdere waardes teruggeven?
8. Klassen en modules
- 8.1 Kan een klasse definitie worden herhaald?
- 8.2 Zijn er klasse veriabelen?
- 8.3 Wat is een klasse instance variabele?
- 8.4 Wat is een singleton methode?
- 8.5 Heeft Ruby klasse methodes?
- 8.6 Wat is een singleton klasse?
- 8.7 Wat is een module functie?
- 8.8 Wat is het verschil tussen een klasse en een module?
- 8.9 Kan je modules subklassen?
- 8.10 Geef eens een voorbeeld van een mix-in
- 8.11 Waarom zijn er twee manieren om een klasse methode te definieeren?
- 8.12 Wat is het verschil
tussen
load
andrequire
? - 8.13 Wat is het verschil
tussen
include
andextend
? - 8.14 Wat betekent
self
? - 8.15 Waarom kan ik geen variabelen laden vanuit een apart bestand?
9. Standaard libraries
- 9.1 Wat geeft
instance_methods(nil)
terug? - 9.2 Hoe werken random number seeds?
- 9.3 Wat is het verschil tussen een directe waarde en een referentie?
- 9.4 Wat is het verschil
tussen
nil
enfalse
? - 9.5 Ik lees een bestand in en verander het, maar het bestand op de schijf is niet veranderd!
- 9.6 Hoe kan ik een bestand verwerken en de inhoud bijwerken?
- 9.7 Ik heb een bestand weggeschreven en gekopieerd maar het einde van de kopie is weg!
- 9.8 Hoe krijg ik het regelnummer van het actieve invoer bestand?
- 9.9 Hoe kan ik
less
gebruiken om de uitvoer van mijn programma te tonen? - 9.10 Wat gebeurd er met een
File
object waar niet langen naar word verwezen? - 9.11 Ik voel me ongemakkelijk als ik een bestand niet sluit!
- 9.12 Hoe sorteer ik bestanden op hun tijdstip van laatste wijziging?
- 9.13 Hoe tel ik het aantal keren dat een woord voorkomt in een bestand?
- 9.14 Waarom is een lege string
niet gelijk aan
false
? - 9.15 Hoe sorteer ik strings op alphabetische volgorde?
- 9.16 Wat geeft
"abcd"[0]
terug? - 9.17 Hoe zet ik tabs om naar spaties?
- 9.18 Hoe kan ik een backslash in een reguliere expressie opnemen?
- 9.19 Wat is het verschil tussen
sub
andsub!
? - 9.20 Waar matcht \Z?
- 9.21 Wat is het verschil
tussen "
..
" and "...
"? - 9.22 Heeft Ruby functie pointers?
- 9.23 Wat is het verschil
tussen
thread
andfork
? - 9.24 Hoe gebruik ik Marshal?
- 9.25 Heeft Ruby exception handling?
- 9.26 Hoe gebruik ik
trap
?
10. Extra libraries
- 10.1 Hoe kan ik Ruby interactief gebruiken?
- 10.2 Is er een debugger voor Ruby?
- 10.3 Hoe gebruik ik een in C geschreven library in Ruby?
- 10.4 Kan ik een Tcl/Tk interface in Ruby gebruiken?
- 10.5 Tk werkt niet!
- 10.6
Kan ik
gtk+
ofxforms
interfaces gebruiken in Ruby? - 10.7 Hoe kan ik met datums rekenen?