Ruby: funciones integradas
Dado que el módulo Kernel está incluido en la clase Object , sus métodos están disponibles en todas partes del programa Ruby. Se pueden llamar sin receptor (forma funcional). Por lo tanto, a menudo se les llama funciones.
No Señor. | Métodos y descripción |
---|---|
1 | abort Termina el programa. Si se genera una excepción (es decir, $! No es nulo), se muestra su mensaje de error. |
2 | Array( obj) Devuelve obj después de convertirlo en una matriz usando to_ary o to_a. |
3 | at_exit {...} Registra un bloque para su ejecución cuando el programa sale. Similar a la instrucción END, pero la instrucción END registra el bloque solo una vez. |
4 | autoload( classname, file) Registra un nombre de clase de clase que se cargará desde el archivo la primera vez que se use. classname puede ser una cadena o un símbolo. |
5 | binding Devuelve la variable actual y los enlaces de métodos. El objeto Binding que se devuelve se puede pasar al método eval como segundo argumento. |
6 | block_given? Devuelve verdadero si el método fue llamado con un bloque . |
7 | callcc {| c|...} Pasa un objeto de continuación c al bloque y ejecuta el bloque. callcc se puede utilizar para la salida global o la construcción de bucle. |
8 | caller([ n]) Devuelve la pila de ejecución actual en una matriz de cadenas en el formulario file: line . Si se especifica n, devuelve las entradas de la pila desde el nivel n en adelante. |
9 | catch( tag) {...} Atrapa una salida no local mediante un lanzamiento llamado durante la ejecución de su bloqueo. |
10 | chomp([ rs = $/]) Devuelve el valor de la variable $_ with the ending newline removed, assigning the result back to $_. El valor de la cadena de nueva línea se puede especificar con rs. |
11 | chomp!([ rs = $/]) Elimina la nueva línea de $ _, modificando la cadena en su lugar. |
12 | chop Devuelve el valor de $_ with its last character (one byte) removed, assigning the result back to $_. |
13 | chop! Elimina el último carácter de $ _, modificando la cadena en su lugar. |
14 | eval( str[, scope[, file, line]]) Ejecuta str como código Ruby. El enlace en el que realizar la evaluación se puede especificar con alcance . El nombre de archivo y el número de línea del código que se compilará se pueden especificar usando archivo y línea. |
15 | exec( cmd[, arg...]) Reemplaza el proceso actual ejecutando el comando cmd . Si se especifican varios argumentos, el comando se ejecuta sin expansión de shell. |
dieciséis | exit([ result = 0]) Sale del programa, con el resultado como el código de estado devuelto. |
17 | exit!([ result = 0]) Mata el programa sin pasar por el manejo de salidas como asegurar , etc. |
18 | fail(...) Ver subir (...) |
19 | Float( obj) Devuelve obj después de convertirlo en flotante. Los objetos numéricos se convierten directamente; cero se convierte en 0,0; Las cadenas se convierten considerando el prefijo de base 0x, 0b. El resto se convierte usando obj.to_f. |
20 | fork fork {...} Crea un proceso hijo. nil se devuelve en el proceso hijo y el ID (entero) del proceso hijo se devuelve en el proceso padre. Si se especifica un bloque, se ejecuta en el proceso hijo. |
21 | format( fmt[, arg...]) Ver sprintf. |
22 | gets([ rs = $/]) Lee el nombre de archivo especificado en la línea de comando o una línea de la entrada estándar. La cadena de separación de registros se puede especificar explícitamente con rs. |
23 | global_variables Devuelve una matriz de nombres de variables globales. |
24 | gsub( x, y) gsub( x) {...} Reemplaza todas las cadenas que coinciden con x en $_ 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) {...} Realiza la misma sustitución que gsub, excepto que la cadena se cambia en su lugar. |
26 | Integer( obj) Devuelve obj después de convertirlo en un número entero. Los objetos numéricos se convierten directamente; nil se convierte en 0; Las cadenas se convierten considerando el prefijo de base 0x, 0b. El resto se convierte usando obj.to_i. |
27 | lambda {| x|...} proc {| x|...} lambda proc Convierte un bloque en un objeto Proc . Si no se especifica ningún bloque, se convierte el bloque asociado con el método de llamada. |
28 | load( file[, private = false]) Carga un programa Ruby desde un archivo . A diferencia de require , no carga bibliotecas de extensión. Si privado es verdadero , el programa se carga en un módulo anónimo, protegiendo así el espacio de nombres del programa que realiza la llamada. |
29 | local_variables Devuelve una matriz de nombres de variables locales. |
30 | loop {...} Repite un bloque de código. |
31 | open( path[, mode = "r"]) open( path[, mode = "r"]) {| f|...} Abre un archivo . Si se especifica un bloque, el bloque se ejecuta con la secuencia abierta pasada como argumento. El archivo se cierra automáticamente cuando sale el bloque. Si la ruta comienza con una tubería |, la siguiente cadena se ejecuta como un comando y se devuelve la secuencia asociada con ese proceso. |
32 | p( obj) Muestra obj usando su método de inspección (a menudo usado para depurar). |
33 | print([ arg...]) Imprime arg en $ defout . Si no se especifican argumentos, se imprime el valor de $ _. |
34 | printf( fmt[, arg...]) Formatea arg de acuerdo con fmt usando sprintf e imprime el resultado en $ defout . Para conocer las especificaciones de formato, consulte sprintf para obtener más detalles. |
35 | proc {| x|...} proc Ver lamda. |
36 | putc( c) Imprime un carácter en la salida predeterminada ( $ defout ). |
37 | puts([ str]) Imprime la cadena en la salida predeterminada ( $ defout ). Si la cadena no termina con una nueva línea, se agrega una nueva línea a la cadena. |
38 | raise(...) fail(...) Provoca una excepción. Asume RuntimeError si no se especifica una clase de excepción. Llamar a raise sin argumentos en una cláusula de rescate vuelve a generar la excepción. Si lo hace fuera de una cláusula de rescate, se genera un RuntimeError sin mensajes .fail es un nombre obsoleto para raise. |
39 | rand([ max = 0]) Genera un número pseudoaleatorio mayor o igual que 0 y menor que máx. Si max no se especifica o se establece en 0, se devuelve un número aleatorio como un número de punto flotante mayor o igual que 0 y menor que 1. srand puede usarse para inicializar un flujo pseudoaleatorio. |
40 | readline([ rs = $/]) Equivalente a gets excepto que genera una excepción EOFError al leer EOF. |
41 | readlines([ rs = $/]) Devuelve una matriz de cadenas que contienen los nombres de archivo especificados como argumentos de la línea de comandos o el contenido de la entrada estándar. |
42 | require( lib) Carga la biblioteca (incluidas las bibliotecas de extensión) lib cuando se llama por primera vez. require no cargará la misma biblioteca más de una vez. Si no se especifica ninguna extensión en lib , require intenta agregarle .rb, .so, etc. |
43 | scan( re) scan( re) {|x|...} Equivalente a $ _. Scan. |
44 | select( reads[, writes = nil[, excepts = nil[, timeout = nil]]]) Comprueba los cambios en el estado de tres tipos de entrada, salida y excepciones de objetos IO que se pasan como matrices de objetos IO. nil se pasa para argumentos que no necesitan verificación. Se devuelve una matriz de tres elementos que contiene matrices de los objetos IO para los que hubo cambios de estado. nil se devuelve en el tiempo de espera. |
45 | set_trace_func( proc) Establece un controlador para el seguimiento. proc puede ser una cadena o un objeto proc . set_trace_func es utilizado por el depurador y el generador de perfiles. |
46 | sleep([ sec]) Suspende la ejecución del programa durante segundos. Si no se especifica sec, el programa se suspende para siempre. |
47 | split([ sep[, max]]) Equivalente a $ _. Split. |
48 | sprintf( fmt[, arg...]) format( fmt[, arg...]) Devuelve una cadena en la que arg se formatea de acuerdo con fmt. Las especificaciones de formato son esencialmente las mismas que las de sprintf en el lenguaje de programación C. Los especificadores de conversión (% seguido del especificador de campo de conversión) en fmt se reemplazan por la cadena formateada del argumento correspondiente. Una lista de conversión archivada se da a continuación en la siguiente sección. |
49 | srand([ seed]) Inicializa una matriz de números aleatorios. Si no se especifica la semilla , la inicialización se realiza utilizando la hora y otra información del sistema para la semilla. |
50 | String( obj) Devuelve obj después de convertirlo en una cadena usando obj.to_s. |
51 | syscall( sys[, arg...]) Llama a una función de llamada del sistema operativo especificada por number sys . Los números y el significado de sys dependen del sistema. |
52 | system( cmd[, arg...]) Ejecuta cmd como una llamada a la línea de comando. Si se especifican varios argumentos, el comando se ejecuta directamente sin expansión de shell. Devuelve verdadero si el estado de devolución es 0 (éxito). |
53 | sub( x, y) sub( x) {...} Reemplaza la primera cadena que coincide con x en $ _ con y. Si se especifica un bloque, las cadenas coincidentes se reemplazan con el resultado del bloque. El resultado modificado se asigna a $ _. |
54 | sub!( x, y) sub!( x) {...} Realiza el mismo reemplazo que sub, excepto que la cadena se cambia en su lugar. |
55 | test( test, f1[, f2]) Realiza varias pruebas de archivos especificadas por la prueba de caracteres . Para mejorar la legibilidad, debe utilizar los métodos de la clase File (por ejemplo, File :: legible?) En lugar de esta función. A continuación, en la siguiente sección, se proporciona una lista de argumentos. |
56 | throw( tag[, value = nil]) Salta a la función de captura esperando con el símbolo o etiqueta de cadena . valor es el valor de retorno que utilizará la captura . |
57 | trace_var( var, cmd) trace_var( var) {...} Establece el seguimiento de una variable global. El nombre de la variable se especifica como símbolo. cmd puede ser una cadena o un objeto Proc. |
58 | trap( sig, cmd) trap( sig) {...} Establece un manejador de señales. sig puede ser una cadena (como SIGUSR1) o un número entero. SIG puede omitirse del nombre de la señal. El manejador de señales para la señal EXIT o la señal número 0 se invoca justo antes de la terminación del proceso. |
59 | untrace_var( var[, cmd]) Elimina el seguimiento de una variable global. Si se especifica cmd , solo se elimina ese comando. |
Funciones para números
Aquí hay una lista de funciones integradas relacionadas con el número. Deben usarse de la siguiente manera:
#!/usr/bin/ruby
num = 12.40
puts num.floor # 12
puts num + 10 # 22.40
puts num.integer? # false as num is a float.
Esto producirá el siguiente resultado:
12
22.4
false
No Señor. | Métodos y descripción |
---|---|
1 | n + num n - num n * num n / num Realiza operaciones aritméticas: suma, resta, multiplicación y división. |
2 | n % num Devuelve el módulo de n. |
3 | n ** num Exponenciación. |
4 | n.abs Devuelve el valor absoluto de n. |
5 | n.ceil Devuelve el número entero más pequeño mayor o igual que n. |
6 | n.coerce( num) Devuelve una matriz que contiene num yn, ambos posiblemente convertidos a un tipo que les permita operar mutuamente. Se utiliza en la conversión automática de tipos en operadores numéricos. |
7 | n.divmod( num) Devuelve una matriz que contiene el cociente y el módulo de dividir n por num. |
8 | n.floor Devuelve el número entero más grande menor o igual que n. |
9 | n.integer? Devuelve verdadero si n es un número entero. |
10 | n.modulo( num) Devuelve el módulo obtenido al dividir n por num y redondear el cociente con floor |
11 | n.nonzero? Devuelve n si no es cero; de lo contrario, nil. |
12 | n.remainder( num) Devuelve el resto obtenido al dividir n por numy quitando decimales del cociente. losresult y n siempre tiene el mismo signo. |
13 | n.round Devuelve n redondeado al entero más cercano. |
14 | n.truncate Devuelve n como un número entero sin decimales. |
15 | n.zero? Devuelve cero si n es 0. |
dieciséis | n & num n | num n ^ num Operaciones bit a bit: AND, OR, XOR e inversión. |
17 | n << num n >> num Desplazamiento a la izquierda y a la derecha bit a bit. |
18 | n[num] Devuelve el valor de la numth bit del bit menos significativo, que es n [0]. |
19 | n.chr Devuelve una cadena que contiene el carácter del código de carácter. n. |
20 | n.next n.succ Devuelve el siguiente entero siguiente a n. Equivalente an + 1. |
21 | n.size Devuelve el número de bytes en la representación de la máquina de n. |
22 | n.step( upto, step) {|n| ...} Itera el bloque de n a upto, aumentando en step cada vez. |
23 | n.times {|n| ...} Itera el bloque n veces. |
24 | n.to_f Convierte nen un número de coma flotante. La conversión flotante puede perder información de precisión. |
25 | n.to_int Devoluciones n después de convertir en número entero. |
Funciones para flotar
No Señor. | Métodos y descripción |
---|---|
1 | Float::induced_from(num) Devuelve el resultado de convertir num a un número de coma flotante. |
2 | f.finite? Devuelve verdadero si f no es infinito y f.nan es falso. |
3 | f.infinite? Devuelve 1 si f es infinito positivo, -1 si es infinito negativo o nil si es algo más. |
4 | f.nan? Devuelve verdadero si f no es un número de punto flotante IEEE válido. |
Funciones para matemáticas
No Señor. | Métodos y descripción |
---|---|
1 | atan2( x, y) Calcula el arco tangente. |
2 | cos( x) Calcula el coseno de x. |
3 | exp( x) Calcula una función exponencial (e elevado a la potencia de x). |
4 | frexp( x) Devuelve una matriz de dos elementos que contiene la fracción nominalizada y el exponente de x. |
5 | ldexp( x, exp) Devuelve el valor de x multiplicado por 2 elevado a la potencia de exp. |
6 | log( x) Calcula el logaritmo natural de x. |
7 | log10( x) Calcula el logaritmo en base 10 de x. |
8 | sin( x) Calcula el seno de x. |
9 | sqrt( x) Devuelve la raíz cuadrada de x. x debe ser positivo. |
10 | tan( x) Calcula la tangente de x. |
Especificador de campo de conversión
La función sprintf (fmt [, arg ...]) y format (fmt [, arg ...]) devuelve una cadena en la que arg se formatea de acuerdo con fmt. Las especificaciones de formato son esencialmente las mismas que las de sprintf en el lenguaje de programación C. Los especificadores de conversión (% seguido del especificador de campo de conversión) en fmt se reemplazan por la cadena formateada del argumento correspondiente.
No Señor. | Especificador y descripción |
---|---|
1 | b Entero binario |
2 | c Carácter único |
3 | d,i Entero decimal |
4 | e Notación exponencial (p. Ej., 2.44e6) |
5 | E Notación exponencial (p. Ej., 2.44E6) |
6 | f Número de coma flotante (p. Ej., 2,44) |
7 | g use% e si el exponente es menor que -4,% f en caso contrario |
8 | G use% E si el exponente es menor que -4,% f en caso contrario |
9 | o Entero octal |
10 | s Cadena o cualquier objeto convertido usando to_s |
11 | u Entero decimal sin signo |
12. | x Entero hexadecimal (p. Ej., 39ff) |
13 | X Entero hexadecimal (p. Ej., 39FF) |
A continuación se muestra el ejemplo de uso:
#!/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
Esto producirá el siguiente resultado:
abc
d = 42
00ff
hello
he
Argumentos de la función de prueba
La prueba de función (prueba, f1 [, f2]) realiza una de las siguientes pruebas de archivo especificadas por la prueba de caracteres . Para mejorar la legibilidad, debe utilizar métodos de clase File (por ejemplo, File :: legible?) En lugar de esta función.
No Señor. | Argumento y descripción |
---|---|
1 | ?r ¿Es legible f1 por el uid efectivo de la persona que llama? |
2 | ?w ¿Se puede escribir en f1 por el uid efectivo de quien llama? |
3 | ?x ¿Es f1 ejecutable por el uid efectivo de la persona que llama? |
4 | ?o ¿F1 es propiedad del uid efectivo de la persona que llama? |
5 | ?R ¿Es f1 legible por el uid real de la persona que llama? |
6 | ?W ¿El usuario real de la persona que llama puede escribir en f1? |
7 | ?X ¿Es f1 ejecutable por el uid real de la persona que llama? |
8 | ?O ¿F1 es propiedad del uid real de la persona que llama? |
9 | ?e ¿Existe f1? |
10 | ?z ¿Tiene f1 longitud cero? |
11 | ?s Tamaño de archivo de f1 (nulo si 0) |
12 | ?f ¿Es F1 un archivo normal? |
13 | ?d ¿Es F1 un directorio? |
14 | ?l ¿Es f1 un enlace simbólico? |
15 | ?p ¿Es f1 una tubería con nombre (FIFO)? |
dieciséis | ?S ¿Es F1 un enchufe? |
17 | ?b ¿Es F1 un dispositivo de bloque? |
18 | ?c ¿Es F1 un dispositivo de caracteres? |
19 | ?u ¿Tiene f1 el bit setuid establecido? |
20 | ?g ¿Tiene f1 el bit setgid establecido? |
21 | ?k ¿F1 tiene el bit adhesivo configurado? |
22 | ?M Hora de la última modificación para f1. |
23 | ?A Última hora de acceso para f1. |
24 | ?C Hora del último cambio de inodo para f1. |
No Señor. | Argumento y descripción |
---|---|
1 | ?= ¿Son iguales los tiempos de modificación de f1 y f2? |
2 | ?> ¿Es el tiempo de modificación de f1 más reciente que f2? |
3 | ?< ¿El tiempo de modificación de f1 es más antiguo que f2? |
4 | ?- ¿Es f1 un vínculo físico con f2? |
A continuación se muestra el ejemplo de uso. Suponiendo que main.rb exista con permisos de lectura, escritura y no ejecución:
#!/usr/bin/ruby
puts test(?r, "main.rb" ) # => true
puts test(?w, "main.rb" ) # => true
puts test(?x, "main.rb" ) # => false
Esto producirá el siguiente resultado:
true
false
false