Ruby Cheat Sheet 1 -- 初體驗

Ruby 語言有不少特色和標籤:面向對象、腳本語言、跨平臺、開源,最吸引個人是 Ruby 認爲其自身是一種旨在使你們編程時能樂在其中的編程語言,正是所謂的「快樂編程」。由於興趣緣由接觸了一下 Ruby 這門語言,但因爲目前我來講並不會常常使用 Ruby,因此在這邊作一個 Cheat Sheet 的存檔,方便以後隨時查閱。編程

如下內容應多源於《Ruby 基礎教程》一書,算是該書的讀書筆記。書是二手買來的,可是新的很,發現果真仍是紙質書有質感一些吧🤔。數組

Ruby 初體驗

「1」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
複製代碼

「2」便利的對象

數組的簡單使用:

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

「3」建立命令

怎麼輸入數據:

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()
複製代碼
相關文章
相關標籤/搜索