Ruby - Integrierte Funktionen
Da das Kernel- Modul in der Object- Klasse enthalten ist, sind seine Methoden überall im Ruby-Programm verfügbar. Sie können ohne Empfänger aufgerufen werden (Funktionsform). Daher werden sie oft als Funktionen bezeichnet.
Sr.Nr. | Methoden & Beschreibung |
---|---|
1 | abort Beendet das Programm. Wenn eine Ausnahme ausgelöst wird (dh $! Ist nicht Null), wird die Fehlermeldung angezeigt. |
2 | Array( obj) Gibt obj zurück, nachdem es mit to_ary oder to_a in ein Array konvertiert wurde. |
3 | at_exit {...} Registriert einen Block zur Ausführung, wenn das Programm beendet wird. Ähnlich wie bei der END-Anweisung, jedoch registriert die END-Anweisung den Block nur einmal. |
4 | autoload( classname, file) Registriert einen Klassenklassennamen, der bei der ersten Verwendung aus der Datei geladen werden soll. Klassenname kann eine Zeichenfolge oder ein Symbol sein. |
5 | binding Gibt die aktuellen Variablen- und Methodenbindungen zurück. Das zurückgegebene Bindungsobjekt kann als zweites Argument an die eval- Methode übergeben werden. |
6 | block_given? Gibt true zurück, wenn die Methode mit einem Block aufgerufen wurde . |
7 | callcc {| c|...} Übergibt ein Continuation- Objekt c an den Block und führt den Block aus. callcc kann für das globale Exit- oder Loop-Konstrukt verwendet werden. |
8 | caller([ n]) Gibt den aktuellen Ausführungsstapel in einem Array der Zeichenfolgen in der Formulardatei zurück : line . Wenn n angegeben ist, werden Stapeleinträge ab der n-ten Ebene zurückgegeben. |
9 | catch( tag) {...} Fängt einen nichtlokalen Ausgang durch einen Wurf ab, der während der Ausführung seines Blocks aufgerufen wird. |
10 | chomp([ rs = $/]) Gibt den Wert der Variablen zurück $_ with the ending newline removed, assigning the result back to $_. Der Wert der Zeilenumbruchzeichenfolge kann mit rs angegeben werden. |
11 | chomp!([ rs = $/]) Entfernt Zeilenumbrüche aus $ _ und ändert die vorhandene Zeichenfolge. |
12 | chop Gibt den Wert von zurück $_ with its last character (one byte) removed, assigning the result back to $_. |
13 | chop! Entfernt das letzte Zeichen aus $ _ und ändert die vorhandene Zeichenfolge. |
14 | eval( str[, scope[, file, line]]) Führt str als Ruby-Code aus. Die Bindung, in der die Bewertung durchgeführt werden soll, kann mit Umfang angegeben werden . Der Dateiname und die Zeilennummer des zu kompilierenden Codes können mit Datei und Zeile angegeben werden . |
15 | exec( cmd[, arg...]) Ersetzt den aktuellen Prozess durch Ausführen des Befehls cmd . Wenn mehrere Argumente angegeben werden, wird der Befehl ohne Shell-Erweiterung ausgeführt. |
16 | exit([ result = 0]) Beendet das Programm mit dem Ergebnis als zurückgegebenem Statuscode. |
17 | exit!([ result = 0]) Beendet das Programm unter Umgehung der Exit-Behandlung, z. B. Sicherstellen usw. |
18 | fail(...) Siehe erhöhen (...) |
19 | Float( obj) Gibt obj zurück, nachdem es in einen Float konvertiert wurde. Numerische Objekte werden direkt konvertiert. nil wird in 0.0 umgewandelt; Zeichenfolgen werden unter Berücksichtigung des Radix-Präfixes 0x, 0b konvertiert. Der Rest wird mit obj.to_f konvertiert. |
20 | fork fork {...} Erstellt einen untergeordneten Prozess. Im untergeordneten Prozess wird nil zurückgegeben, und die ID (Ganzzahl) des untergeordneten Prozesses wird im übergeordneten Prozess zurückgegeben. Wenn ein Block angegeben wird, wird er im untergeordneten Prozess ausgeführt. |
21 | format( fmt[, arg...]) Siehe sprintf. |
22 | gets([ rs = $/]) Liest den in der Befehlszeile oder einer Zeile angegebenen Dateinamen von der Standardeingabe. Die Datensatztrennzeichenfolge kann explizit mit rs angegeben werden. |
23 | global_variables Gibt ein Array globaler Variablennamen zurück. |
24 | gsub( x, y) gsub( x) {...} Ersetzt alle Zeichenfolgen, die mit x in übereinstimmen $_ with y. If a block is specified, matched strings are replaced with the result of the block. The modified result is assigned to $_. |
25 | gsub!( x, y) gsub!( x) {...} Führt die gleiche Ersetzung wie gsub durch, außer dass die Zeichenfolge an Ort und Stelle geändert wird. |
26 | Integer( obj) Gibt obj zurück, nachdem es in eine Ganzzahl konvertiert wurde. Numerische Objekte werden direkt konvertiert. nil wird in 0 umgewandelt; Zeichenfolgen werden unter Berücksichtigung des Radix-Präfixes 0x, 0b konvertiert. Der Rest wird mit obj.to_i konvertiert. |
27 | lambda {| x|...} proc {| x|...} lambda proc Konvertiert einen Block in ein Proc- Objekt. Wenn kein Block angegeben ist, wird der der aufrufenden Methode zugeordnete Block konvertiert. |
28 | load( file[, private = false]) Lädt ein Ruby-Programm aus einer Datei . Im Gegensatz zu require werden keine Erweiterungsbibliotheken geladen. Wenn privat ist wahr , wird das Programm in eine anonyme Modul geladen, so dass der Namensraum des rufenden Programms zu schützen. |
29 | local_variables Gibt ein Array lokaler Variablennamen zurück. |
30 | loop {...} Wiederholt einen Codeblock. |
31 | open( path[, mode = "r"]) open( path[, mode = "r"]) {| f|...} Öffnet eine Datei . Wenn ein Block angegeben wird, wird der Block mit dem geöffneten Stream ausgeführt, der als Argument übergeben wird. Die Datei wird automatisch geschlossen, wenn der Block beendet wird. Wenn der Pfad mit einer Pipe | beginnt, wird die folgende Zeichenfolge als Befehl ausgeführt und der diesem Prozess zugeordnete Stream wird zurückgegeben. |
32 | p( obj) Zeigt obj mit seiner Inspect-Methode an (häufig zum Debuggen verwendet). |
33 | print([ arg...]) Druckt arg auf $ defout . Wenn keine Argumente angegeben werden, wird der Wert von $ _ gedruckt. |
34 | printf( fmt[, arg...]) Formatiert arg gemäß fmt mit sprintf und druckt das Ergebnis in $ defout . Einzelheiten zur Formatierung finden Sie unter sprintf. |
35 | proc {| x|...} proc Siehe Lamda. |
36 | putc( c) Druckt ein Zeichen in die Standardausgabe ( $ defout ). |
37 | puts([ str]) Druckt eine Zeichenfolge in die Standardausgabe ( $ defout ). Wenn die Zeichenfolge nicht mit einer neuen Zeile endet, wird eine neue Zeile an die Zeichenfolge angehängt. |
38 | raise(...) fail(...) Löst eine Ausnahme aus. Geht davon aus Runtime wenn keine Ausnahmeklasse angegeben wird. Das Aufrufen von raise ohne Argumente in einer Rettungsklausel löst die Ausnahme erneut aus. Wenn Sie dies außerhalb einer Rettungsklausel tun, wird ein RuntimeError ohne Nachricht ausgelöst .fail ist ein veralteter Name für Raise. |
39 | rand([ max = 0]) Erzeugt eine Pseudozufallszahl größer oder gleich 0 und kleiner als max. Wenn max entweder nicht angegeben oder auf 0 gesetzt ist, wird eine Zufallszahl als Gleitkommazahl größer oder gleich 0 und kleiner als 1 zurückgegeben. Mit srand kann ein Pseudozufallsstrom initialisiert werden. |
40 | readline([ rs = $/]) Entspricht get, außer dass beim Lesen von EOF eine EOFError-Ausnahme ausgelöst wird. |
41 | readlines([ rs = $/]) Gibt ein Array von Zeichenfolgen zurück, die entweder die als Befehlszeilenargumente angegebenen Dateinamen oder den Inhalt der Standardeingabe enthalten. |
42 | require( lib) Lädt die Bibliothek (einschließlich der Erweiterungsbibliotheken) lib, wenn sie zum ersten Mal aufgerufen wird. require lädt dieselbe Bibliothek nicht mehr als einmal. Wenn in lib keine Erweiterung angegeben ist , müssen Sie versuchen, .rb, .so usw. hinzuzufügen. |
43 | scan( re) scan( re) {|x|...} Entspricht $ _. Scan. |
44 | select( reads[, writes = nil[, excepts = nil[, timeout = nil]]]) Überprüft, ob sich der Status von drei Arten von E / A-Objekten ändert, die als Arrays von E / A-Objekten übergeben werden. nil wird für Argumente übergeben, die nicht überprüft werden müssen. Ein Array mit drei Elementen, das Arrays der E / A-Objekte enthält, für die sich der Status geändert hat, wird zurückgegeben. Bei Zeitüberschreitung wird nil zurückgegeben. |
45 | set_trace_func( proc) Legt einen Handler für die Ablaufverfolgung fest. proc kann eine Zeichenfolge oder ein proc- Objekt sein. set_trace_func wird vom Debugger und Profiler verwendet. |
46 | sleep([ sec]) Unterbricht die Programmausführung für Sekunden. Wenn sec nicht angegeben ist, wird das Programm für immer angehalten. |
47 | split([ sep[, max]]) Entspricht $ _. Split. |
48 | sprintf( fmt[, arg...]) format( fmt[, arg...]) Gibt eine Zeichenfolge zurück, in der arg gemäß fmt formatiert ist. Die Formatierungsspezifikationen sind im Wesentlichen dieselben wie für sprintf in der Programmiersprache C. Konvertierungsspezifizierer (% gefolgt von Konvertierungsfeldspezifizierer) in fmt werden durch eine formatierte Zeichenfolge des entsprechenden Arguments ersetzt. Eine Liste der eingereichten Konvertierungen finden Sie weiter unten im nächsten Abschnitt. |
49 | srand([ seed]) Initialisiert ein Array von Zufallszahlen. Wenn Samen nicht angegeben ist, eine Initialisierung durchgeführt für die Saat , die Zeit und andere Systeminformationen. |
50 | String( obj) Gibt obj zurück, nachdem es mit obj.to_s in einen String konvertiert wurde. |
51 | syscall( sys[, arg...]) Ruft eine durch die Nummer sys angegebene Aufruffunktion des Betriebssystems auf . Die Anzahl und Bedeutung von sys ist systemabhängig. |
52 | system( cmd[, arg...]) Führt cmd als Aufruf an die Befehlszeile. Wenn mehrere Argumente angegeben werden, wird der Befehl direkt ohne Shell-Erweiterung ausgeführt. Gibt true zurück, wenn der Rückgabestatus 0 ist (Erfolg). |
53 | sub( x, y) sub( x) {...} Ersetzt die erste Zeichenfolge, die mit x in $ _ übereinstimmt, durch y. Wenn ein Block angegeben wird, werden übereinstimmende Zeichenfolgen durch das Ergebnis des Blocks ersetzt. Das geänderte Ergebnis wird $ _ zugewiesen. |
54 | sub!( x, y) sub!( x) {...} Führt den gleichen Austausch wie sub durch, außer dass die Zeichenfolge an Ort und Stelle geändert wird. |
55 | test( test, f1[, f2]) Führt verschiedene Datei - Tests durch das Zeichen angegeben Test . Um die Lesbarkeit zu verbessern, sollten Sie anstelle dieser Funktion Dateiklassenmethoden (z. B. File :: readable?) Verwenden. Eine Liste der Argumente finden Sie weiter unten im nächsten Abschnitt. |
56 | throw( tag[, value = nil]) Springt zur Catch-Funktion, die mit dem Symbol oder dem String- Tag wartet . value ist der Rückgabewert, der von catch verwendet werden soll . |
57 | trace_var( var, cmd) trace_var( var) {...} Legt die Ablaufverfolgung für eine globale Variable fest. Der Variablenname wird als Symbol angegeben. cmd kann eine Zeichenfolge oder ein Proc-Objekt sein. |
58 | trap( sig, cmd) trap( sig) {...} Legt einen Signalhandler fest. sig kann eine Zeichenfolge (wie SIGUSR1) oder eine Ganzzahl sein. SIG kann im Signalnamen weggelassen werden. Der Signalhandler für das EXIT-Signal oder die Signalnummer 0 wird unmittelbar vor dem Beenden des Prozesses aufgerufen. |
59 | untrace_var( var[, cmd]) Entfernt die Ablaufverfolgung für eine globale Variable. Wenn cmd angegeben ist, wird nur dieser Befehl entfernt. |
Funktionen für Zahlen
Hier ist eine Liste der integrierten Funktionen in Bezug auf die Nummer. Sie sollten wie folgt verwendet werden:
#!/usr/bin/ruby
num = 12.40
puts num.floor # 12
puts num + 10 # 22.40
puts num.integer? # false as num is a float.
Dies führt zu folgendem Ergebnis:
12
22.4
false
Sr.Nr. | Methoden & Beschreibung |
---|---|
1 | n + num n - num n * num n / num Führt arithmetische Operationen aus: Addition, Subtraktion, Multiplikation und Division. |
2 | n % num Gibt den Modul von n zurück. |
3 | n ** num Potenzierung. |
4 | n.abs Gibt den absoluten Wert von n zurück. |
5 | n.ceil Gibt die kleinste Ganzzahl zurück, die größer oder gleich n ist. |
6 | n.coerce( num) Gibt ein Array zurück, das num und n enthält, die möglicherweise in einen Typ konvertiert wurden, mit dem sie gegenseitig bearbeitet werden können. Wird bei der automatischen Typkonvertierung in numerischen Operatoren verwendet. |
7 | n.divmod( num) Gibt ein Array zurück, das den Quotienten und den Modul enthält, indem n durch num geteilt wird. |
8 | n.floor Gibt die größte Ganzzahl zurück, die kleiner oder gleich n ist. |
9 | n.integer? Gibt true zurück, wenn n eine Ganzzahl ist. |
10 | n.modulo( num) Gibt den Modul zurück, der durch Teilen von n durch num und Runden des Quotienten mit dem Boden erhalten wird |
11 | n.nonzero? Gibt n zurück, wenn es nicht Null ist, andernfalls Null. |
12 | n.remainder( num) Gibt den durch Teilen erhaltenen Rest zurück n durch numund Entfernen von Dezimalstellen aus dem Quotienten. Dasresult und n habe immer das gleiche Zeichen. |
13 | n.round Gibt n auf die nächste Ganzzahl gerundet zurück. |
14 | n.truncate Gibt n als Ganzzahl mit entfernten Dezimalstellen zurück. |
15 | n.zero? Gibt Null zurück, wenn n 0 ist. |
16 | n & num n | num n ^ num Bitweise Operationen: AND, OR, XOR und Inversion. |
17 | n << num n >> num Bitweise Links- und Rechtsverschiebung. |
18 | n[num] Gibt den Wert von zurück numth Bit vom niedrigstwertigen Bit, das n [0] ist. |
19 | n.chr Gibt eine Zeichenfolge zurück, die das Zeichen für den Zeichencode enthält n. |
20 | n.next n.succ Gibt die nächste Ganzzahl nach n zurück. Entspricht n + 1. |
21 | n.size Gibt die Anzahl der Bytes in der Maschinendarstellung von zurück n. |
22 | n.step( upto, step) {|n| ...} Iteriert den Block von n zu upto, inkrementierend um step jedes Mal. |
23 | n.times {|n| ...} Iteriert den Block n mal. |
24 | n.to_f Konvertiert nin eine Gleitkommazahl. Bei der Float-Konvertierung können Präzisionsinformationen verloren gehen. |
25 | n.to_int Kehrt zurück n nach der Umwandlung in eine Interger-Nummer. |
Funktionen für Float
Sr.Nr. | Methoden & Beschreibung |
---|---|
1 | Float::induced_from(num) Gibt das Ergebnis der Konvertierung von num in eine Gleitkommazahl zurück. |
2 | f.finite? Gibt true zurück, wenn f nicht unendlich ist und f.nan false ist. |
3 | f.infinite? Gibt 1 zurück, wenn f eine positive Unendlichkeit ist, -1, wenn eine negative Unendlichkeit vorliegt, oder Null, wenn etwas anderes. |
4 | f.nan? Gibt true zurück, wenn f keine gültige IEEE-Gleitkommazahl ist. |
Funktionen für Mathe
Sr.Nr. | Methoden & Beschreibung |
---|---|
1 | atan2( x, y) Berechnet die Bogentangente. |
2 | cos( x) Berechnet den Cosinus von x. |
3 | exp( x) Berechnet eine Exponentialfunktion (e erhöht auf die Potenz von x). |
4 | frexp( x) Gibt ein Array mit zwei Elementen zurück, das den nominalisierten Bruch und den Exponenten von x enthält. |
5 | ldexp( x, exp) Gibt den Wert von x mal 2 hoch von exp zurück. |
6 | log( x) Berechnet den natürlichen Logarithmus von x. |
7 | log10( x) Berechnet den Logarithmus zur Basis 10 von x. |
8 | sin( x) Berechnet den Sinus von x. |
9 | sqrt( x) Gibt die Quadratwurzel von x zurück. x muss positiv sein. |
10 | tan( x) Berechnet die Tangente von x. |
Konvertierungsfeldspezifizierer
Die Funktionen sprintf (fmt [, arg ...]) und format (fmt [, arg ...]) geben eine Zeichenfolge zurück, in der arg gemäß fmt formatiert ist. Die Formatierungsspezifikationen sind im Wesentlichen dieselben wie für sprintf in der Programmiersprache C. Konvertierungsspezifizierer (% gefolgt von Konvertierungsfeldspezifizierer) in fmt werden durch eine formatierte Zeichenfolge des entsprechenden Arguments ersetzt.
Sr.Nr. | Spezifizierer & Beschreibung |
---|---|
1 | b Binäre Ganzzahl |
2 | c Einzelzeichen |
3 | d,i Dezimalzahl |
4 | e Exponentielle Notation (z. B. 2.44e6) |
5 | E Exponentielle Notation (z. B. 2.44E6) |
6 | f Gleitkommazahl (z. B. 2,44) |
7 | g Verwenden Sie% e, wenn der Exponent kleiner als -4 ist, andernfalls% f |
8 | G Verwenden Sie% E, wenn der Exponent kleiner als -4 ist, andernfalls% f |
9 | o Oktale Ganzzahl |
10 | s String oder ein beliebiges Objekt, das mit to_s konvertiert wurde |
11 | u Dezimalzahl ohne Vorzeichen |
12. | x Hexadezimale Ganzzahl (z. B. 39ff) |
13 | X Hexadezimale Ganzzahl (z. B. 39FF) |
Es folgt das Verwendungsbeispiel -
#!/usr/bin/ruby
str = sprintf("%s\n", "abc") # => "abc\n" (simplest form)
puts str
str = sprintf("d=%d", 42) # => "d=42" (decimal output)
puts str
str = sprintf("%04x", 255) # => "00ff" (width 4, zero padded)
puts str
str = sprintf("%8s", "hello") # => " hello" (space padded)
puts str
str = sprintf("%.2s", "hello") # => "he" (trimmed by precision)
puts str
Dies führt zu folgendem Ergebnis:
abc
d = 42
00ff
hello
he
Testfunktionsargumente
Der Funktionstest (Test, f1 [, f2]) führt eine der folgenden Datei Tests durch das Zeichen angegeben Test . Um die Lesbarkeit zu verbessern, sollten Sie anstelle dieser Funktion Dateiklassenmethoden (z. B. File :: readable?) Verwenden.
Sr.Nr. | Argument & Beschreibung |
---|---|
1 | ?r Ist f1 für die effektive UID des Anrufers lesbar? |
2 | ?w Ist f1 durch die effektive UID des Anrufers beschreibbar? |
3 | ?x Ist f1 von der effektiven UID des Anrufers ausführbar? |
4 | ?o Ist f1 im Besitz der effektiven UID des Anrufers? |
5 | ?R Ist f1 für die reale UID des Anrufers lesbar? |
6 | ?W Ist f1 für die reale UID des Anrufers beschreibbar? |
7 | ?X Ist f1 von der realen UID des Anrufers ausführbar? |
8 | ?O Ist f1 im Besitz der echten UID des Anrufers? |
9 | ?e Existiert f1? |
10 | ?z Hat f1 eine Länge von Null? |
11 | ?s Dateigröße von f1 (null wenn 0) |
12 | ?f Ist f1 eine reguläre Datei? |
13 | ?d Ist f1 ein Verzeichnis? |
14 | ?l Ist f1 eine symbolische Verbindung? |
15 | ?p Ist f1 eine Named Pipe (FIFO)? |
16 | ?S Ist f1 eine Steckdose? |
17 | ?b Ist f1 ein Blockgerät? |
18 | ?c Ist f1 ein Zeichengerät? |
19 | ?u Hat f1 das Setuid-Bit gesetzt? |
20 | ?g Hat f1 das setgid-Bit gesetzt? |
21 | ?k Hat f1 das Sticky Bit gesetzt? |
22 | ?M Letzte Änderungszeit für f1. |
23 | ?A Letzte Zugriffszeit für f1. |
24 | ?C Letzte Inode-Änderungszeit für f1. |
Sr.Nr. | Argument & Beschreibung |
---|---|
1 | ?= Sind die Modifikationszeiten von f1 und f2 gleich? |
2 | ?> Ist die Änderungszeit von f1 aktueller als f2? |
3 | ?< Ist die Änderungszeit von f1 älter als f2? |
4 | ?- Ist f1 eine harte Verbindung zu f2? |
Es folgt das Verwendungsbeispiel. Angenommen, main.rb existiert mit Lese-, Schreib- und nicht Ausführungsberechtigungen -
#!/usr/bin/ruby
puts test(?r, "main.rb" ) # => true
puts test(?w, "main.rb" ) # => true
puts test(?x, "main.rb" ) # => false
Dies führt zu folgendem Ergebnis:
true
false
false