Ruby 语言有不少特色和标签:面向对象、脚本语言、跨平台、开源,最吸引个人是 Ruby 认为其自身是一种旨在使你们编程时能乐在其中的编程语言,正是所谓的「快乐编程」。由于兴趣缘由接触了一下 Ruby 这门语言,但因为目前我来讲并不会常常使用 Ruby,因此在这边作一个 Cheat Sheet 的存档,方便以后随时查阅。编程
如下内容应多源于《Ruby 基础教程》一书,算是该书的读书笔记。书是二手买来的,可是新的很,发现果真仍是纸质书有质感一些吧🤔。数组
可使用两种方法来执行 Ruby 命令:ruby
# 执行 Ruby 文件
> ruby helloruby.rb
# 使用 irb(更适合简单的小测试)
> irb
复制代码
\
是转译符,程序会对字符串中 \
后面的字符作特殊处理,在 ''
中则不会转译:markdown
print("Hello,\nRuby\n!\n")
# Hello,
# Ruby
# !
# => nil
print("Hello \\ Ruby!")
# Hello \ Ruby! => nil
print('Hello,\nRuby\n!\n')
# Hello,\nRuby\n!\n => nil
复制代码
在
''
中想嵌入\
或''
的话是例外,仍须要在以前加上\
。编程语言
Ruby 中有许多输出的方法:测试
print "100" #=> 100
put "100" #=> 100\n
p "100" #=> "100"
复制代码
在使用
p
方法时,不会转译字符串中的内容。原则上p
方法是给编程者使用的。ui另还有
pp
方法,如其名pretty print
,能够将带嵌套的信息更易懂地打印出来。spa
如何打印一个变量:code
print "表面积 = ", area, "\n"
# or
puts "表面积 = #{area}"
复制代码
Ruby 中的注释和多行注释:orm
=begin 多行注释 2021年02月18日建立 =end
# 单行注释
复制代码
简单的条件与循环语句:
# if
a = 20
if a >= 10 then # then 能够省略
print "greater\n"
else
print "smaller\n"
end
# while
i = 1
while 1 <= 10 do # do 能够省略
puts i
i = i + 1
end
# times
100.times do
puts "Hello, Ruby!"
end
复制代码
数组的简单使用:
name = ["M", "i", "m", "0", "s", "a"]
name[1] #=> "i"
name[3] = "o"
name[7] = "?"
puts name
# ["M", "i", "m", "o", "s", "a", nil, "?"]
name.each do |char|
puts char
end
复制代码
符号 symbol
是什么:
符号
symbol
与字符串很像,通常做为名称标签使用,好比做为散列的键,能够将符号简单理解为轻量级的字符串,其与字符串之间也能够相互转换。
散列的简单使用:
person = {name: "Mim0sa", nickName: "Mimoku"}
person = {:name=>"Mim0sa", :nickName=>"Mimoku"}
person[:nickName] = "Mim0ku"
person.each do |key, value|
puts "#{key}: #{value}"
end
复制代码
模式匹配的简单使用:
/Ruby/ # is a pattern
/Ruby/ =~ "Hi Ruby" #=> 3
/Ruby/ =~ "Diamond" #=> nil
/Ruby/ =~ "HI RUBY" #=> nil
/Ruby/i =~ "HIRUBY" #=> 2
复制代码
怎么输入数据:
puts "第1个参数: #{ARGV[0]}"
puts "第2个参数: #{ARGV[1]}"
puts "第3个参数: #{ARGV[2]}"
> ruby RubyDemo.rb 1 2 3
# 第1个参数: x
# 第2个参数: y
# 第3个参数: z
复制代码
怎么读取文件:
filename = ARGV[0]
file = File.open(filename)
text = file.read
print text
file.close
# or
print File.read(ARGV[0])
复制代码
使用模式匹配逐行匹配内容并输出:
pattern = Regexp.new(ARGV[0])
filename = ARGV[1]
file = File.open(filename)
file.each_line do |line|
if pattern =~ line
print line
end
end
file.close
复制代码
定义一个方法以及从其余文件引用:
# hello.rb
def hello
puts "Hello, Ruby!"
end
# use_hello.rb
require_relative "hello"
hello()
复制代码