由于内核模块包含在 Object 类中,因此它的方法在Ruby程序中随处可用.可以在没有接收器(功能形式)的情况下调用它们.因此,它们通常被称为函数.
Sr.No. | 方法&说明 |
---|---|
1 | abort 终止程序.如果引发异常(即$!不是nil),则会显示其错误消息. |
2 | Array(obj) 将obj转换为obj后返回obj使用to_ary或to_a的数组. |
3 | at_exit {...} 在程序退出时注册执行块.与END语句类似,但END语句只将块注册一次. |
4 | autoload( classname, file) 注册第一次从文件加载的类类名它被使用了. classname可以是字符串或符号. |
5 | binding 返回当前变量和方法绑定.返回的 Binding 对象可以作为其第二个参数传递给 eval 方法. |
6 | block_given? 如果使用块调用方法,则返回true. |
7 | callcc {| c | ...} 将 Continuation 对象c传递给块并执行块. callcc 可用于全局退出或循环构造. |
8 | caller([ n]) 返回数组中的当前执行堆栈形式 file:line 中的字符串.如果指定了n,则从第n级返回堆栈条目. |
9 | catch(tag){...} 通过调用期间的投掷捕获非本地退出块的执行. |
10 | chomp([rs = $/]) 返回变量$ _的值,删除结束换行符,返回结果到$ _.可以使用rs指定换行符字符串的值. |
11 | chomp!([rs = $/]) 从$ _中删除换行符,修改字符串地方. |
12 | chop 返回$ _的值,删除最后一个字符(一个字节),将结果返回给$ _. |
13 | chop! 从$ _中删除最后一个字符,修改字符串. |
14 | eval(str [,scope [,file,line]]) 执行 str 作为Ruby代码.可以使用范围指定执行评估的绑定.要编译的代码的文件名和行号可以使用 file 和line指定. |
15 | exec(cmd [,arg ...]) 通过运行命令 cmd 替换当前进程.如果指定了多个参数,则执行该命令时不进行shell扩展. |
16 | exit([ result = 0]) 退出程序,结果为返回的状态代码. |
17 | exit!([ result = 0]) 终止程序,绕过退出处理,例如确保等. |
18 | fail(...) 参见raise(...) |
19 | Float(obj) 将obj转换为float后返回obj.数字对象直接转换; nil转换为0.0;考虑到0x,0b基数前缀转换字符串.其余的使用obj.to_f进行转换. |
20 | fork fork {...} 创建子进程.在子进程中返回 nil ,并在父进程中返回子进程的ID(整数).如果指定了一个块,它将在子进程中运行. |
21 | format( fmt[, arg...]) 参见sprintf. |
22 | gets([ rs = $/]) 读取命令行中指定的文件名或标准输入中的一行.可以使用rs显式指定记录分隔符字符串. |
23 | global_variables 返回全局变量名称数组. |
24 | gsub(x,y) gsub(x){...} 将$ _中与x匹配的所有字符串替换为y.如果指定了块,则匹配的字符串将替换为块的结果.修改后的结果分配给$ _. |
25 | gsub!(x,y) gsub!(x){...} 执行与gsub相同的替换,但字符串已更改. |
26 | Integer( obj) 退货将它转换为整数后的obj.数字对象直接转换; nil转换为0;考虑到0x,0b基数前缀转换字符串.其余的使用obj.to_i进行转换. |
27 | lambda {| x | ...} proc {| x | ...} lambda proc 将块转换为 Proc 对象.如果没有指定块,则转换与调用方法关联的块. |
28 | load(file [,private = false]) 从 |
29 | local_variables 返回局部变量名的数组. |
30 | loop {...} 重复一段代码. |
31 | open( path[, mode = "r"]) open( path[, mode = "r"]) {| f|...} 打开文件.如果指定了块,则执行该块,并将打开的流作为参数传递.当块退出时,文件自动关闭.如果 path 以管道|开头,则以下字符串作为命令运行,并返回与该进程关联的流. |
32 | p(obj) 使用其inspect方法显示obj(通常用于调试). |
33 | print([arg ...]) 打印arg到 $ defout 的.如果没有指定参数,则打印$ _的值. |
34 | printf(fmt [,arg ...]) 根据格式化arg fmt 使用 sprintf 并将结果打印到 $ defout .有关格式规范,请参阅sprintf了解详细信息. |
35 | proc {| x | ...} proc 参见lamda. |
36 | putc(c) 将一个字符打印到默认输出( $ defout ). |
37 | puts([str]) 将字符串打印到默认输出( $ defout ).如果字符串不以换行符结尾,则会在字符串后附加换行符. |
38 | raise(...) fail(...) 引发异常.如果未指定异常类,则假设 RuntimeError .在 rescue 子句中调用 raise |
39 | rand([max = 0]) 生成大于或等于的伪随机数等于0且小于最大值如果未指定max或将其设置为0,则返回一个随机数作为大于或等于0且小于1的浮点数. 可用于初始化伪随机数流. |
40 | readline([rs = $/]) 相当于获取,除非它在读取EOF时引发EOFError异常. |
41 | readlines([rs = $/]> 返回一个字符串数组,其中包含指定为命令行参数的文件名或标准输入的内容. |
42 | require(lib) 首次调用时加载库(包括扩展库) lib . require不会多次加载同一个库.如果 lib 中未指定扩展名,则需要尝试向其添加.rb,.so等. |
43 | scan( re) scan( re) {|x|...} 相当于$ _.扫描. |
44 | select(reads [,writes = nil [,excepts = nil [,timeout = nil]]]) 检查三种IO对象输入,输出和异常状态的变化作为IO对象的数组传递.对于不需要检查的参数传递 nil .将返回包含状态更改的IO对象数组的三元素数组. 在超时时返回. |
45 | set_trace_func(proc) 设置跟踪处理程序. proc 可以是字符串或 proc 对象. set_trace_func 由调试器和分析器使用. |
46 | sleep([ sec]) 暂停程序执行秒数.如果未指定sec,程序将永久暂停. |
47 | split([ sep[, max]]) 相当于$ _.拆分. |
48 | sprintf(fmt [,arg ...]) 格式(fmt [,arg ...]) 返回一个字符串,其中arg根据fmt格式化.格式化规范与C编程语言中的sprintf基本相同. fmt 中的转换说明符(%后跟转换字段说明符)将由相应参数的格式化字符串替换.转换文件列表将在下一节中给出. |
49 | srand([seed]) 初始化一组随机数.如果未指定 seed ,则使用种子的时间和其他系统信息执行初始化. |
50 | 字符串(obj) 使用obj.to_s将其转换为字符串后返回obj. |
51 | syscall(sys [,arg ...]) 调用由指定的操作系统调用函数number sys . sys 的数量和含义取决于系统. |
52 | system(cmd [,arg ...]) 执行 cmd 作为对命令行的调用.如果指定了多个参数,则直接运行该命令而不进行shell扩展.如果返回状态为0(成功),则返回 true . |
53 | sub(x,y) sub(x) {...} 将$ _中与x匹配的第一个字符串替换为y.如果指定了块,则匹配的字符串将替换为块的结果.修改后的结果分配给$ _. |
54 | sub!(x,y) sub!(x){...} 执行与sub相同的替换,但字符串已更改. |
55 | test( test, f1[, f2]) 执行字符 test 指定的各种文件测试.为了提高可读性,您应该使用File类方法(例如File :: readable?)而不是此函数.下面的部分将给出一个参数列表. |
56 | throw(tag [,value = nil]) 跳转到等待符号或字符串的catch函数标签的. value是 catch 使用的返回值. |
57 | trace_var(var,cmd) trace_var(var){ ...} 设置全局变量的跟踪.变量名称被指定为符号. cmd 可以是字符串或Proc对象. |
58 | trap( sig, cmd) trap( sig) {...} 设置信号处理程序. sig可以是字符串(如SIGUSR1)或整数.可以从信号名称中省略SIG.在进程终止之前调用EXIT信号或信号编号0的信号处理程序. |
59 | untrace_var(var [,cmd]) 删除全局变量的跟踪.如果指定 cmd ,则仅删除该命令. |
以下是与数字相关的内置函数列表.它们应该如下使用;
#!/usr/bin/ruby num = 12.40 puts num.floor # 12 puts num + 10 # 22.40 puts num.integer? # false as num is a float.
这将产生以下结果 :
12 22.4 false
Sr.No. | 方法&说明 |
---|---|
1 | n+ num n - num n * num n/num 执行算术运算:加法,减法,乘法和除法. |
2 | n%num 返回n的模数. |
3 | n ** num Exponentiation. |
4 | n.abs 返回n的绝对值. |
5 | n.ceil 返回大于或等于的最小整数到n. |
6 | n.coerce(num) 返回一个包含num和n的数组,这两个数组都可能转换为允许它们相互操作的类型.用于数字运算符中的自动类型转换. |
7 | n.divmod(num) 返回一个数组,其中包含从n除以num的商和模数. |
8 | n.floor 返回小于或等于n的最大整数. |
9 | n.integer? 如果n是整数,则返回true. |
10 | n.modulo(num) 返回n除以num得到的模数,并用对商进行舍入楼层 |
11 | n.nonzero? 如果不为零则返回n,否则返回nil. |
12 | n.remainder(num) 返回获得的余数将 n 除以 num 并从商中删除小数. 结果和 n 始终具有相同的符号. |
13 | n.round 返回n四舍五入到最近整数. |
14 | n.truncate 将n作为整数返回,并删除小数. |
15 | n.zero? 如果n为0,则返回零. |
16 | n& num n | num n ^ num 按位运算:AND,OR,XOR和反转. |
17 | n<< num n>> num 按位左移和右移. |
18 | n [num] 返回的值 num 来自最低有效位,即n [0]. |
19 | n.chr 返回包含该字符的字符串对于字符代码 n . |
20 | n.next n.succ 返回n后面的下一个整数.相当于n + 1. |
21 | n.size 返回 n 的机器表示中的字节数. |
22 | n .step(upto,step){| n | ...} 将块从 n 迭代到到达,递增步每次. |
23 | n.times {| n | ...} 迭代块 n 次. |
24 | n.to_f 将 n 转换为浮点数.浮点转换可能会丢失精确信息. |
25 | n.to_int 转换为整数后返回 n . |
Sr.No. | 方法&说明 |
---|---|
1 | Float :: induced_from(num) 返回将 num 转换为浮点数的结果. |
2 | f.finite? 如果 f 不是无限且f.nan为假,则返回true. |
3 | f.infinite? 如果 f 为正无穷大,则返回1;如果为负无穷大,则返回-1;如果为其他任何内容,则返回nil. |
4 | f.nan? 如果 f 不是有效的IEEE浮点数,则返回true. |
Sr.No. | 方法&说明 |
---|---|
1 | atan2(x,y) 计算反正切. |
2 | cos(x) 计算x的余弦. |
3 | exp(x) 计算指数函数(e上升到x的幂). |
4 | frexp(x) 返回一个包含名义化分数和指数x的双元素数组. |
5 | ldexp(x,exp) 将x乘以2的值返回到exp的幂. |
6 | log(x) 计算x的自然对数. |
7 | log10(x) 计算s是x的基数10的对数. |
8 | sin(x) 计算x的正弦值. |
9 | sqrt(x) 返回x的平方根. x必须是正数. |
10 | tan(x) 计算x的正切值. |
函数 sprintf(fmt [, arg ...])和format(fmt [,arg ...])返回一个字符串,其中arg根据fmt格式化.格式化规范与C编程语言中的sprintf基本相同. fmt 中的转换说明符(%后跟转换字段说明符)将替换为相应参数的格式化字符串.
Sr.No. | Specifier&说明 |
---|---|
1 | b 二进制整数 |
2 | c 单个字符 |
3 | d,i 十进制整数 |
4 | e 指数表示法(例如,2.44e6) |
5 | E 指数表示法(例如,2.44E6) |
6 | f 浮点数(例如,2.44) |
7 | g 如果指数小于-4则使用%e,否则使用%f |
8 | G 如果使用%E指数小于-4,%f否则 |
9 | o 八进制整数 |
10 | s 字符串或使用to_s转换的任何对象 |
11 | u 无符号十进制整数 |
12. | x 十六进制整数(例如,39ff) |
13 | X 十六进制整数(例如,39FF) |
以下是使用示例 :
#!/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
这将产生以下结果 :
abc d = 42 00ff hello he
函数 test(test,f1 [,f2])执行以下字符 test
Sr.No. | 参数&说明 |
---|---|
1 | ?r 调用者的有效uid是否可以读取f1? |
2 | ?w f1是否可由有效uid写入来电者? |
3 | ?x f1是否可以通过调用者的有效uid执行? |
4 | ?o f1是否由调用方的有效uid拥有? |
5 | ?R f1的真实用户是否可读取f1? |
6 | ?W f1是否可以通过调用者的真实uid写入? |
7 | ?X f1是否可由真实uid执行来电者? |
8 | ?O f1是否由真实的来电者拥有? |
9 | ?e f1是否存在? |
10 | ?z f1的长度是否为零? |
11 | ?s 文件大小为f1(如果为0则为零) |
12 | ?f 是f1 a常规文件? |
13 | ?d f1是目录吗? |
14 | ?l 是f1一个符号链接? |
15 | ?p f1是命名管道(FIFO)吗? |
16 | ?S f1是套接字吗? |
17 | ?b f1是块设备吗? |
18 | ?c f1是字符设备吗? |
19 | ?u f1是否设置了setuid位? |
20 | ?g f1是否设置了setgid位? |
21 | ?k f1是否设置了粘滞位? |
22 | ?M 最后修改时间为f1. |
23 | ?A f1的上次访问时间. |
24 | ?C f1的最后一个inode更改时间. |
Sr.No. | 参数&说明 |
---|---|
1 | ?= Are modification times of f1 and f2 equal? |
2 | ?> Is the modification time of f1 more recent than f2 ? |
3 | ?< Is the modification time of f1 older than f2 ? |
4 | ?- $b $bIs f1 a hard link to f2 ? |
以下是用法示例。 假设main.rb存在read,write和not execution权限 :
#!/usr/bin/ruby puts test(?r, "main.rb" ) # => true puts test(?w, "main.rb" ) # => true puts test(?x, "main.rb" ) # => false
This will produce the following result :
true false false