Die Programmiersprache Ruby (German Edition)
Variablen
$stdin
.
STDOUT
Der Standardausgabedatenstrom. Dies ist der Standardwert der Variablen
$stdout
.
TOPLEVEL_BINDING
Ein
Binding
-Objekt, das die Bindungen im Top-Level-Gültigkeitsbereich darstellt.
TRUE
Ein veraltetes Synonym für
true
.
10.2.3 Globale Variablen
Der Ruby-Interpreter definiert eine Anzahl globaler Variablen, die Ihre Programme verwenden können. Viele dieser Variablen sind auf bestimmte Art besonders. Einige verwenden Satzzeichen in ihren Namen. (Das Modul
English.rb
definiert englischsprachige Alternativen zu den Satzzeichen. Fügen Sie
require 'English'
zu Ihrem Programm hinzu, wenn Sie diese besser lesbaren Alternativen verwenden möchten.) Einige sind schreibgeschützt; ihnen kann kein Wert zugewiesen werden. Und einige sind Thread-lokal, so dass jeder Thread eines Ruby-Programms möglicherweise einen anderen Wert der Variablen sieht. Schließlich sind einige globale Variablen (
$_
,
$~
und die davon abgeleiteten Mustervergleichs-Variablen) methodenlokal: Wenngleich global auf die Variable zugegriffen werden kann, ist ihr Wert in der aktuellen Methode lokal. Wenn eine Methode den Wert einer dieser Variablen setzt, ändert sie nicht den Wert, den der Code sieht, der die Methode aufruft.
Sie können die vollständige Liste der globalen Variablen, die Ihr Ruby-Interpreter definiert, wie folgt erhalten:
ruby -e 'puts global_variables.sort'
Um die ausführlichen Namen aus dem Modul
English
in Ihr Listing einzufügen, versuchen Sie dies:
ruby -rEnglish -e 'puts global_variables.sort'
Die nachfolgenden Unterabschnitte dokumentieren die vordefinierten globalen Variablen nach Kategorien.
10.2.3.1 Globale Einstellungen
Diese globalen Variablen enthalten Konfigurationseinstellungen und legen Informationen über die Umgebung fest, in der das Ruby-Programm läuft, wie etwa Kommandozeilenargumente:
$*
Ein nur lesbares Synonym für die Konstante
ARGV
. Englisches Synonym:
$ARGV
.
$$
Die Prozess-ID des aktuellen Ruby-Prozesses. Nur lesbar. Englische Synonyme:
$PID
,
$PROCESS_ID
.
$?
Der Exit-Status des zuletzt beendeten Prozesses. Nur lesbar und Thread-lokal. Englisches Synonym:
$CHILD_STATUS
.
$DEBUG
,
$-d
Ist auf
true
gesetzt, wenn die Option
-d
oder
--debug
auf der Kommandozeile gesetzt wurde.
$KCODE
,
$-K
In Ruby 1.8 enthält diese Variable einen String, der die aktuelle Textkodierung benennt. Sein Wert ist »NONE«, »UTF8«, »SJIS« oder »EUC«. Dieser Wert kann mit Hilfe der Interpreter-Option
-K
gesetzt werden. Diese Variable funktioniert in Ruby 1.9 nicht mehr, und ihr Einsatz erzeugt eine Warnung.
$LOADED_FEATURES
,
$"
Ein Array von Strings, die die geladenen Dateien benennen. Nur lesbar.
$LOAD_PATH
,
$:
,
$-I
Ein Array von Strings, das die Verzeichnisse enthält, die beim Laden von Dateien mit den Methoden
load
und
require
durchsucht werden sollen. Diese Variable ist nur lesbar, aber Sie können den Inhalt des Array verändern, auf das sie verweist, um beispielsweise vor oder hinter dem Pfad neue Verzeichnisse einzufügen.
$PROGRAM_NAME
,
$0
Der Name der Datei, die das zurzeit ausgeführte Ruby-Programm enthält. Der Name ist »
-
«, wenn das Programm von der Standardeingabe gelesen wird, oder »
-e
«, wenn das Programm mit einer
-e
-Option angegeben wurde. Beachten Sie, dass dies etwas anderes ist als
$FILENAME
.
$SAFE
Die aktuelle Sicherheitsstufe für die Programmausführung. Siehe „10.5 Sicherheit“ für Details. Diese Variable kann auf der Kommandozeile mit der Option
-T
gesetzt werden. Der Wert dieser Variablen ist Thread-lokal.
$VERBOSE
,
$-v
,
$-w
true
, wenn die Kommandozeilenoptionen
-v
,
-w
oder
--verbose
angegeben wurden.
nil
, wenn
-W0
angegeben wurde. Andernfalls
false
. Sie können diese Variable auf
nil
setzen, um alle Warnungen zu unterdrücken.
10.2.3.2 Globale Ausnahmebehandlung
Die beiden folgenden globalen Variablen sind in
rescue
-Klauseln nützlich, wenn eine Ausnahme ausgelöst wurde:
$!
Das zuletzt ausgelöste Ausnahmeobjekt. Auf das Ausnahmeobjekt kann auch mit Hilfe der
=>
-Syntax in der Deklaration der
rescue
-Klausel zugegriffen werden. Der Wert dieser Variablen ist Thread-lokal. Englisches Synonym:
$ERROR_INFO
.
$@
Der Stack-Trace der letzten Ausnahme, äquivalent zu
$!.backtrace
. Dieser Wert ist Thread-lokal. Englisches Synonym:
$ERROR_POSITION
.
10.2.3.3 Datenströme und globale Textverarbeitungsvariablen
Die folgenden globalen Variablen sind
IO
-Datenströme und Variablen, die das Standardverhalten der Kernel-Methoden zur
Weitere Kostenlose Bücher