非常教程

Ruby 2.4参考手册

语言 | 3Language

Miscellaneous Syntax

结束表达

Ruby 使用换行符作为表达式的结尾。当用操作符结束一行时,打开括号,逗号等等,表达式将继续。

您可以用;(分号)结束表达式。分号经常使用ruby -e

缩进

Ruby 不需要任何缩进。通常,ruby程序缩进两个空格。

如果您在运行 ruby 时启用了警告并且缩进不匹配,您将收到警告。

alias

alias关键字是最常用的别名的方法。在对方法进行别名时,可以使用其名称或符号:

alias new_name old_name
alias :new_name :old_name

对于方法,通常可以使用 Module#alias_method 来代替alias

您也可以使用alias别名全局变量:

$old = 0

alias $new $old

p $new # prints 0

您可以在任何范围内使用alias

undef

undef关键字防止电流类从响应调用指定的方法。

undef my_method

您可以使用符号而不是方法名称:

undef :my_method

你可以解开多个方法:

undef method1, method2

您可以undef在任何范围内使用。另请参阅模块#undef_method

defined?

defined? 是一个返回描述其参数的字符串的关键字:

p defined?(UNDEFINED_CONSTANT) # prints nil
p defined?(RUBY_VERSION)       # prints "constant"
p defined?(1 + 1)              # prints "method"

您不需要使用括号defined?,但由于其优先级低,因此推荐使用defined?

例如,如果你想检查一个实例变量是否存在,并且实例变量是零:

defined? @instance_variable && @instance_variable.zero?

这会返回"expression",如果未定义实例变量,这不是您想要的。

@instance_variable = 1
defined?(@instance_variable) && @instance_variable.zero?

在检查实例变量是否定义时添加括号是更好的检查。nil当实例变量未定义且false实例变量不为零时,这会正确返回。

使用特定的反射方法,如 instance_variable_defined?例如变量或 const_defined?对于常量而言,比使用更不容易出错defined?

BEGINEND

BEGIN定义在当前文件中的任何其他代码之前运行的块。它通常用于单线和ruby -e。同样END定义一个在任何其他代码之后运行的块。

BEGIN必须出现在顶层,END在方法内使用时发出警告。

这里是一个例子:

BEGIN {
  count = 0
}

你必须使用{}你可能不会使用doend

这是一个示例单线程,它将标准输入或参数列表中的任何文件的数字相加:

ruby -ne 'BEGIN { count = 0 }; END { puts count }; count += gets.to_i'
Ruby 2.4

Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言,是世界上最优美而巧妙的语言。

主页 https://www.ruby-lang.org/
源码 https://github.com/ruby/ruby
版本 2.4
发布版本 2.4.1

Ruby 2.4目录

1.缩略 | Abbrev
2.ARGF
3.数组 | Array
4.Base64
5.基本对象 | BasicObject
6.基准测试 | Benchmark
7.BigDecimal
8.绑定 | Binding
9.CGI
10.类 | Class
11.比较 | Comparable
12.负责 | Complex
13.计算续体 | Continuation
14.覆盖 | Coverage
15.CSV
16.日期 | Date
17.日期时间 | DateTime
18.DBM
19.代理 | Delegator
20.摘要 | Digest
21.Dir
22.DRb
23.编码 | Encoding
24.枚举 | Enumerable
25.枚举 | Enumerator
26.ENV
27.ERB
28.错误 | Errors
29.Etc
30.期望值 | Exception
31.错误类 | FalseClass
32.Fiber
33.Fiddle
34.文件 | File
35.文件实用程序 | FileUtils
36.查找 | Find
37.浮点 | Float
38.Forwardable
39.GC
40.GDBM
41.GetoptLong
42.Hash
43.Integer
44.IO
45.IPAddr
46.JSON
47.Kernel
48.语言 | 3Language
49.记录 | Logger
50.编排 | Marshal
51.MatchData
52.数学 | Math
53.矩阵 | Matrix
54.方法 | Method
55.模型 | Module
56.监控 | Monitor
57. 互斥 | Mutex
58.Net
59.Net::FTP
60.Net::HTTP
61.Net::IMAP
62.Net::SMTP
63.NilClass
64.数字 | Numeric
65.对象 | Object
66.ObjectSpace
67.Observable
68.Open3
69.OpenSSL
70.OpenStruct
71.OpenURI
72.OptionParser
73.路径名 | Pathname
74.完整输出 | PrettyPrint
75.Prime
76.Proc
77.过程 | Process
78.PStore
79.PTY
80.队列 | Queue
81.随机 | Random
82.范围 | Range
83.合理的 | Rational
84.Readline
85.Regexp
86.Resolv
87.Ripper
88.RubyVM
89.Scanf
90.SDBM
91.SecureRandom
92.Set
93.Shell
94.信号 | Signal
95.Singleton
96.套接字 | Socket
97.字符串 | String
98.StringIO
99.StringScanner
100.结构 | Struct