/ 编程语言Ruby
Ruby 小抄
快速入门 Ruby 语法。
Ruby 安装
实用网站
标识符
一般习惯使用下划线进行单词分隔
注释
# 单行注释
=begin
多行
注释
=end
变量/常量
name = 'Ruby' # 变量
VERSION = '3.2.1' # 常量
字符串
lang = 'ruby'
msg = "I am using #{lang}" # I am using ruby
msg = 'I am using #{lang}' # I am using ${lang}
# 多行字符串
puts <<-S
有
多
行
S
# 有
# 多
# 行
puts <<~MESSAGE
自动
删除
缩进
MESSAGE
# 自动
# 删除
# 缩进
数组
a = ['a', 'b', 'c']
b = ['a', 1, 2, 3]
a + b # ["a", "b", "c", "a", 1, 2, 3]
a - b # ["b", "c"]
a | b # ["a", "b", "c", 1, 2, 3]
a & b # ["a"]
哈希表
user = {
id: 1,
name: 'ruby'
}
user[:name] # ruby
空判断
# 当 a 为 nil 时,赋值为 100
a ||= 100
a # 100
赋值
a, b = [1, 2]
a # 1
b # 2
方法调用
f1 # 无参省略小括号(推荐)
f1() # 无参保留小括号
puts 'hi' # 省略小括号
puts('hi') # 保留小括号
类
class Foo
def initialize(name)
@name = name
end
def say
puts "Hi, #{@name}!"
end
def self.bar
puts 'Foo, bar!'
end
end
foo = Foo.new 'Jack'
foo.say # Hi, Jack!
Foo.bar # Foo, bar!
继承
class Person
def initialize(name)
@name = name
end
def say
puts "Hi, I am #{@name}"
end
end
class Student < Person
def initialize(name, grade)
super(name)
@grade = grade
end
def get_grade
puts "I am grade #{@grade}"
end
end
stu = Student.new('Jack', 2)
stu.say # Hi, I am Jack
stu.get_grade # I am grade 2
访问权限
class Foo
def public_method
puts 'public method'
end
protected
def protected_method
puts 'protected method'
end
private
def private_method
puts 'private method'
end
end
foo = Foo.new
foo.public_method # public method
foo.protected_method # ERROR! protected method `protected_method' called for #<Foo:0x00000001010316f8> (NoMethodError)
foo.private_method # ERROR! private method `private_method' called for #<Foo:0x00000001032a61c0> (NoMethodError)