Dit is het commando ruby dat kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
robijn — Geïnterpreteerde objectgeoriënteerde scripttaal
KORTE INHOUD
robijn [--auteursrechten] [--versie] [-SUacdlnpswvy] [-0[octaal,-C directory]
[-E extern[:intern,-F[patroon,-I directory] [-K[c,-T[niveau,-W[niveau]]
[-e commando] [-i[uitbreiding,-r bibliotheek] [-x[directory,--{in staat stellen|'disable'}-KENMERK]
[--dumpen=doel] [--uitgebreid] [--] [programmabestand] [argument ...]
PRODUCTBESCHRIJVING
Ruby is een geïnterpreteerde scripttaal voor snel en eenvoudig objectgeoriënteerd programmeren.
Het heeft veel functies om tekstbestanden te verwerken en systeembeheertaken uit te voeren (zoals in Perl).
Het is eenvoudig, ongecompliceerd en uitbreidbaar.
Als u een taal wilt voor eenvoudig objectgeoriënteerd programmeren, of u houdt niet van Perl
lelijkheid, of je houdt wel van het concept van LISP, maar houdt niet van te veel haakjes, Ruby
misschien uw voorkeurstaal.
KENMERKEN
Ruby's kenmerken zijn als volgt:
Interpretatief
Ruby is een geïnterpreteerde taal, dus je hoeft geschreven programma's niet opnieuw te compileren
Ruby om ze uit te voeren.
Variabelen hebben geen type dan: (dynamisch typen)
Variabelen in Ruby kunnen gegevens van elk type bevatten. U hoeft zich geen zorgen te maken
variabel typen. Bijgevolg heeft het een zwakkere compilatietijdcontrole.
Nee verklaring nodig
U kunt variabelen gebruiken in uw Ruby-programma's zonder declaraties. Variabel
namen geven hun bereik aan: globaal, klasse, instantie of lokaal.
Eenvoudig syntaxis
Ruby heeft een eenvoudige syntaxis die enigszins is beïnvloed door Eiffel.
Nee gebruikers level geheugen management
Ruby heeft automatisch geheugenbeheer. Objecten waarnaar nergens meer wordt verwezen
worden automatisch verzameld door de vuilnisman die in de tolk is ingebouwd.
Alles is an object
Ruby is een puur objectgeoriënteerde taal en was dat al sinds de oprichting ervan. Zelfs zo
basisgegevens als gehele getallen worden gezien als objecten.
Klas, erfenis, en methoden
Omdat het een objectgeoriënteerde taal is, heeft Ruby natuurlijk basisfuncties zoals klassen,
overerving en methoden.
eenling methoden
Ruby heeft de mogelijkheid om methoden voor bepaalde objecten te definiëren. Dat kan bijvoorbeeld
definieer een actie met een druk op de knop voor een bepaalde widget door een singleton-methode te definiëren voor
de knop. Of u kunt uw eigen op een prototype gebaseerde objectsysteem maken met behulp van
singleton-methoden, als je dat wilt.
Mengen by modules
Ruby heeft opzettelijk niet de meervoudige erfenis waar het een bron van is
verwarring. In plaats daarvan heeft Ruby de mogelijkheid om implementaties over de hele wereld te delen
erfenis boom. Dit wordt vaak een 'Mix-in' genoemd.
Iteratoren
Ruby heeft iterators voor lus-abstractie.
sluitingen
In Ruby kunt u de procedure objectiveren.
Tekst verwerking en regelmatig uitdrukkingen
Ruby heeft een heleboel tekstverwerkingsfuncties zoals in Perl.
M17N, karakter reeks onafhankelijk
Ruby ondersteunt meertalige programmering. Gemakkelijk te verwerken teksten die in veel geschreven zijn
verschillende natuurlijke talen en gecodeerd in veel verschillende tekencoderingen,
zonder afhankelijkheid van Unicode.
Bignums
Met ingebouwde bignums kun je bijvoorbeeld rekenen faculteit(400).
Afspiegeling en domein specifiek talen
Klasse is ook een instantie van de klasse Klasse. Definitie van klassen en methoden is
een uitdrukking net als 1+1. Uw programma's kunnen dus zelfs programma's schrijven en wijzigen.
Zo kunt u uw applicatie in uw eigen programmeertaal bovenop Ruby schrijven.
uitzondering behandeling
Zoals in Java(tm).
Direct toegang naar the OS
Ruby kan de meeste UNIX-systeemaanroepen gebruiken, die vaak worden gebruikt bij systeemprogrammering.
Dynamisch het laden
Op de meeste UNIX-systemen kunt u objectbestanden in de Ruby-interpreter on-the-
vlieg.
Rijk bibliotheken
Bibliotheken genaamd "ingebouwde bibliotheken" en "standaardbibliotheken" worden gebundeld met Ruby.
En u kunt meer bibliotheken verkrijgen via het pakketbeheersysteem genaamd
'RubyGems'.
Bovendien zijn er duizenden Ruby-projecten op GitHub
⟨https://github.com/languages/Ruby.
OPTIES
Ruby-interpreter accepteert de volgende opdrachtregelopties (schakelaars). Ze lijken erg op elkaar
aan die van perl(1).
--auteursrechten Drukt de copyrightmelding af.
--versie Drukt de versie van Ruby-interpreter af.
-0[octaal] (Het cijfer "nul".) Specificeert het ingangsrecordscheidingsteken ($/) als een octaal
nummer. Als er geen cijfer wordt opgegeven, wordt het nulteken als scheidingsteken gebruikt.
Andere schakelaars kunnen de cijfers volgen. -00 verandert Ruby in alineamodus.
-0777 zorgt ervoor dat Ruby het hele bestand in één keer leest als een enkele string, aangezien er geen is
rechtskarakter met die waarde.
-C directory
-X directory Zorgt ervoor dat Ruby overschakelt naar de directory.
-E extern[:intern]
--codering extern[:intern]
Specificeert de standaardwaarde(n) voor externe codering en interne codering.
Waarden moeten worden gescheiden met een dubbele punt (:).
U kunt die voor interne coderingen weglaten, dan de waarde
(Encoding.default_internal) zal nul zijn.
--externe codering=codering
--interne codering=codering
Geef de standaard externe of interne tekencodering op
-F patroon Specificeert invoerveldscheidingsteken ($;).
-I directory Wordt gebruikt om Ruby te vertellen waar de bibliotheekscripts moeten worden geladen. Directorypad zal zijn
toegevoegd aan de laadpadvariabele ($:).
-K kcode Specificeert KANJI (Japanse) codering. De standaardwaarde voor scriptcoderingen
(__ENCODING__) en externe coderingen (Encoding.default_external) zijn de
gespecificeerde. kcode kan een van zijn
e EUC-JP
s Windows-31J (CP932)
u UTF-8
n ASCII-8BIT (BINAAIR)
-S Zorgt ervoor dat Ruby de omgevingsvariabele PATH gebruikt om naar script te zoeken, tenzij het
naam begint met een schuine streep. Dit wordt gebruikt om #! op machines die dat niet doen
ondersteunen, op de volgende manier:
#! /usr/local/bin/ruby
# Deze regel maakt van de volgende een commentaar in Ruby \
exec /usr/local/bin/ruby -S $0 $*
-T[niveau=1] Schakelt smetcontroles in op het opgegeven niveau (standaard 1).
-U Stelt de standaardwaarde voor interne coderingen (Encoding.default_internal) in op
UTF-8.
-W[niveau=2] Schakelt de uitgebreide modus in op het opgegeven niveau zonder de versie af te drukken
bericht aan het begin. Het niveau kan zijn;
0 Uitgebreide modus is "stilte". Het zet $VERBOSE op nul.
1 Uitgebreide modus is "gemiddeld". Het zet de $VERBOSE op false.
2 (Standaard) Verbose-modus is "verbose". Het stelt $VERBOSE in op waar.
-W2 is hetzelfde als -w
-a Schakelt de modus voor automatisch splitsen in bij gebruik met -n or -p. In automatische splitsmodus, Ruby
wordt uitgevoerd
$F = $_.gesplitst
aan het begin van elke lus.
-c Zorgt ervoor dat Ruby de syntaxis van het script controleert en afsluit zonder het uit te voeren. Als
er geen syntaxisfouten zijn, zal Ruby "Syntax OK" naar de standaard afdrukken
uitgang.
-d
--debuggen Schakelt de foutopsporingsmodus in. $DEBUG wordt ingesteld op waar.
-e commando Specificeert het script vanaf de opdrachtregel terwijl Ruby wordt verteld de rest niet te doorzoeken
van de argumenten voor een scriptbestandsnaam.
-h
--help Drukt een overzicht van de opties af.
-i uitbreiding Specificeert de in-place-bewerkingsmodus. De extensie, indien opgegeven, wordt toegevoegd aan old
bestandsnaam om een reservekopie te maken. Bijvoorbeeld:
% echomatz > /tmp/junk
% kat /tmp/junk
matz
% robijn -p -i.bak -e '$_.upcase!' /tmp/junk
% kat /tmp/junk
MATZ
% kat /tmp/junk.bak
matz
-l (De kleine letter "ell".) Maakt automatische verwerking van regeleinden mogelijk,
wat betekent om eerst $\ in te stellen op de waarde van $/, en ten tweede elke te hakken
regel lezen met behulp van chop!.
-n Zorgt ervoor dat Ruby de volgende lus rond uw script aanneemt, waardoor het
herhaal bestandsnaamargumenten ongeveer zoals dorst -n or awk.
terwijl krijgt
...
einde
-p Werkt grotendeels hetzelfde als -n switch, maar print de waarde van variabele $_ bij elk
einde van de lus. Bijvoorbeeld:
% echo matz | robijn -p -e '$_.tr! "az", "AZ"'
MATZ
-r bibliotheek Zorgt ervoor dat Ruby de bibliotheek laadt met behulp van vereisen. Het is handig bij gebruik -n or
-p.
-s Schakelt enige schakelaarparsing in voor schakelaars na de scriptnaam maar vóór een willekeurige
bestandsnaamargumenten (of voor een --). Alle schakelaars die daar worden gevonden, worden verwijderd
van ARGV en stel de overeenkomstige variabele in het script in. Bijvoorbeeld:
#! /usr/local/bin/ruby -s
# drukt "true" af indien aangeroepen met de schakelaar `-xyz'.
print "true\n" als $xyz
Op sommige systemen bevat $0 niet altijd de volledige padnaam, dus je hebt de
-S switch om Ruby te vertellen om indien nodig naar het script te zoeken (om af te handelen
ingebedde ruimtes en dergelijke). Een betere constructie dan $* zou ${1+"$@"} zijn,
maar het werkt niet als het script wordt geïnterpreteerd door csh(1).
-v Schakelt uitgebreide modus in. Ruby zal zijn versie aan het begin afdrukken en instellen
de variabele $VERBOSE naar waar. Sommige methoden drukken extra berichten af als dit
variabele is waar. Als deze schakelaar wordt gegeven, en er zijn geen andere schakelaars
aanwezig, stopt Ruby na het afdrukken van de versie.
-w Schakelt de uitgebreide modus in zonder het versiebericht aan het begin af te drukken. Het
stelt de variabele $VERBOSE in op true.
-x[directory] Vertelt Ruby dat het script is ingesloten in een bericht. Toonaangevende vuilnis zal zijn
weggegooid tot de eerste regel die begint met "#!" en bevat de tekenreeks,
"robijn". Alle zinvolle schakelaars op die regel worden toegepast. Het einde van
het script moet worden opgegeven met ofwel EOF, ^D (control-D), ^Z (control-Z),
of het gereserveerde woord __END__. Als de mapnaam is opgegeven, zal Ruby dat doen
schakel naar die map voordat u het script uitvoert.
-y
--yydebug GEBRUIK NIET.
Schakelt de foutopsporingsmodus van de compiler in. Ruby zal een heleboel interne status afdrukken
berichten tijdens het samenstellen. Specificeer alleen deze schakelaar die u gaat debuggen
de Ruby-tolk.
--uitzetten-KENMERK
--inschakelen-KENMERK
Schakelt (of activeert) het gespecificeerde uit KENMERK.
--schakel edelstenen uit
--enable-edelstenen Schakelt RubyGems-bibliotheken uit (of schakelt deze in). Standaard,
Ruby laadt de nieuwste versie van elke geïnstalleerde edelsteen.
De Gem-constante is waar als RubyGems is ingeschakeld, onwaar als
anders.
--disable-rubyopt
--enable-rubyopt Negeert (of houdt rekening met) de omgevingsvariabele RUBYOPT.
Standaard houdt Ruby rekening met de variabele.
--alles uitschakelen
--schakel alles in Schakelt alle functies uit (of activeert).
--dumpen=doel Dump wat informatie.
Drukt het gespecificeerde doel af. doel kan er een zijn;
versie versiebeschrijving hetzelfde als --versie
gebruik kort gebruiksbericht hetzelfde als -h
uw Toon lang helpbericht hetzelfde als --help
syntaxis controle van syntaxis hetzelfde als -c --yydebug
yydebug compiler foutopsporingsmodus, hetzelfde als --yydebug
Geef deze schakelaar alleen op als u de Ruby gaat debuggen
tolk.
ontleedboom
parsetree_met_commentaar AST-knooppuntenboom
Geef deze schakelaar alleen op als u de Ruby gaat debuggen
tolk.
ins gedemonteerde instructies
Geef deze schakelaar alleen op als u de Ruby gaat debuggen
tolk.
--uitgebreid Schakelt de uitgebreide modus in zonder het versiebericht aan het begin af te drukken. Het
stelt de variabele $VERBOSE in op true. Als deze schakelaar wordt gegeven, en geen andere
schakelaars aanwezig zijn, stopt Ruby na het afdrukken van de versie.
MILIEU
RUBYLIB Een door dubbele punten gescheiden lijst van mappen die zijn toegevoegd aan het laadpad van Ruby's bibliotheek
($:). Directory's van deze omgevingsvariabele worden doorzocht vóór de standaard
laadpad wordt doorzocht.
bijvoorbeeld:
RUBYLIB="$HOME/lib/ruby:$HOME/lib/rubyext"
RUBYOPT Extra Ruby-opties.
bv
RUBYOPT="-w -Ke"
Merk op dat RUBYOPT alleen kan bevatten -d, -E, -I, -K, -r, -T, -U, -v, -w, -W,
--debuggen, --uitzetten-KENMERK en --inschakelen-KENMERK.
RUBYPATH Een door dubbele punten gescheiden lijst met mappen waarin Ruby zoekt naar Ruby-programma's
the -S vlag is opgegeven. Deze variabele gaat vooraf aan de omgevingsvariabele PATH.
RUBYSHELL Het pad naar de shell-opdracht van het systeem. Deze omgevingsvariabele is ingeschakeld voor
alleen mswin32-, mingw32- en OS/2-platforms. Als deze variabele niet is gedefinieerd, wordt Ruby
verwijst naar COMSPEC.
PATH Ruby verwijst naar de omgevingsvariabele PATH bij het aanroepen van Kernel#system.
En Ruby is afhankelijk van enkele RubyGems-gerelateerde omgevingsvariabelen, tenzij RubyGems is uitgeschakeld.
Zie de hulp van juweel(1) zoals hieronder.
% edelsteen hulp
GC MILIEU
De Ruby Garbage Collector (GC) volgt objecten in slots van vaste grootte, maar elk object kan dat
hulpgeheugentoewijzingen laten afhandelen door de malloc-familie van C-standaard bibliotheekaanroepen (
malloc(3) calloc(3), en herverdeling(3)). In deze documentatie verwijst de "heap" naar de
Ruby-objecten met slots van vaste grootte, terwijl "malloc" verwijst naar hulptoewijzingen
gewoonlijk de "procesheap" genoemd. Er zijn dus ten minste twee mogelijke manieren om
GC activeren:
1 Het bereiken van de objectlimiet.
2 De Malloc-limiet bereiken.
In Ruby 2.1 is de generatie-GC geïntroduceerd en zijn de limieten onderverdeeld in jong en
oude generaties, met twee extra manieren om een GC te activeren:
3 Het bereiken van de oude objectlimiet.
4 De oude malloc-limiet bereiken.
Er zijn momenteel 4 mogelijke gebieden waar de GC kan worden afgestemd door de volgende 11
omgevingsvariabelen:
RUBY_GC_HEAP_INIT_SLOTS Initiële toewijzingsslots. Geïntroduceerd in Ruby 2.1,
standaard: 10000.
RUBY_GC_HEAP_FREE_SLOTS Bereid ten minste dit aantal slots voor na GC.
Wijs dit aantal slots toe als er niet genoeg zijn
sleuven. Geïntroduceerd in Ruby 2.1, standaard: 4096
RUBY_GC_HEAP_GROWTH_FACTOR Verhoog hiermee de toewijzingssnelheid van heapslots
factor. Geïntroduceerd in Ruby 2.1, standaard: 1.8,
minimaal: 1.0 (geen groei)
RUBY_GC_HEAP_GROWTH_MAX_SLOTS Toewijzingspercentage is beperkt tot dit aantal slots,
het voorkomen van overmatige toewijzing als gevolg van
RUBY_GC_HEAP_GROWTH_FACTOR. Geïntroduceerd in Ruby 2.1,
standaard: 0 (geen limiet)
RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR Voer een volledige GC uit wanneer het aantal oude objecten is
meer dan R * N, waarbij R deze factor is en N de
aantal oude objecten na de laatste volledige GC.
Geïntroduceerd in Ruby 2.1.1, standaard: 2.0
RUBY_GC_MALLOC_LIMIT De initiële limiet voor toewijzing van jonge generaties vanaf
de malloc-familie. GC start wanneer deze limiet is bereikt
bereikt. Standaard: 16 MB
RUBY_GC_MALLOC_LIMIT_MAX De maximale limiet voor toewijzing van jonge generaties vanaf
malloc voordat GC begint. Voorkomt overmatige malloc
groei door RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR.
Geïntroduceerd in Ruby 2.1, standaard: 32 MB.
RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR Verhoogt de limiet van jonge generatie malloc-oproepen,
het verminderen van de GC-frequentie maar het verhogen van de groei van mallocs
totdat RUBY_GC_MALLOC_LIMIT_MAX is bereikt.
Geïntroduceerd in Ruby 2.1, standaard: 1.4, minimum: 1.0
(geen groei)
RUBY_GC_OLDMALLOC_LIMIT De initiële limiet van de oude generatie toewijzing van
malloc, start een volledige GC wanneer deze limiet is bereikt
bereikt. Geïntroduceerd in Ruby 2.1, standaard: 16 MB
RUBY_GC_OLDMALLOC_LIMIT_MAX De maximale limiet voor toewijzing van de oude generatie vanaf
malloc voordat een volledige GC begint. Voorkomt overmatig
malloc groei als gevolg van
RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR. Geïntroduceerd in
Ruby 2.1, standaard: 128 MB
RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR Verhoogt de limiet van malloc van de oude generatie
toewijzing, waarbij de volledige GC-frequentie wordt verlaagd maar wordt verhoogd
malloc groei tot RUBY_GC_OLDMALLOC_LIMIT_MAX is
bereikt. Geïntroduceerd in Ruby 2.1, standaard: 1.2,
minimaal: 1.0 (geen groei)
STACK SIZE MILIEU
Omgevingsvariabelen voor de stackgrootte zijn afhankelijk van de implementatie en kunnen worden gewijzigd
verschillende versies van Ruby. De VM-stack wordt gebruikt voor pure Ruby-code en beheerd door de
virtuele machine. Machinestack wordt gebruikt door het besturingssysteem en het gebruik ervan is afhankelijk
op C-extensies en op C-compileropties. Het gebruik van lagere waarden hiervoor kan het mogelijk maken
applicaties om meer Fibers of Threads draaiende te houden; maar vergroot de kans op
SystemStackError-uitzonderingen en segmentatiefouten (SIGSEGV). Deze omgevingsvariabelen
zijn beschikbaar sinds Ruby 2.0.0. Alle waarden worden opgegeven in bytes.
RUBY_THREAD_VM_STACK_SIZE VM-stackgrootte gebruikt bij het maken van de thread. standaard: 131072
(32-bits CPU) of 262144 (64-bits)
RUBY_THREAD_MACHINE_STACK_SIZE Grootte machinestapel gebruikt bij het maken van threads. standaard: 524288
of 1048575
RUBY_FIBER_VM_STACK_SIZE VM-stackgrootte gebruikt bij het maken van glasvezel. standaard: 65536 of
131072
RUBY_FIBER_MACHINE_STACK_SIZE Grootte machinestapel gebruikt bij het maken van vezels. standaard: 262144
of 524288
Gebruik ruby online met behulp van onworks.net-services