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()
複製代碼