按照以往的學習方式,每學一種編程語言都要先配置它的環境。因此,在正式寫 Ruby 程序之前應該先配置環境。看這里,看這里,看這里
Hello,World!
安裝好環境,我們來寫一個 Hello World!
vim HelloWorld.rb # 創建 ruby 文件
print "Hello,World!\n"
執行程序
ruby HelloWorld.rb
此時,終端顯示
Hello,World!
有木有很簡單,接下來我們正式開始 Ruby 之旅。
方法的調用
Ruby 在調用方法時可以省略 ()
irb(main):001:0> print "Hello,","Ruby",".","\n"
Hello,Ruby.
=> nil
irb(main):002:0>
print 方法直接輸出結果,需要換行時,需要在末尾加 "\n"。
puts方法在輸出結果的末尾一定會輸出換行符。
p方法在輸出結果時,數值結果和字符串結果會以不同的形式輸出。但是print和puts方法,輸出數值1和字符串"1"時,結果都是單純的1。
eg:
irb(main):002:0> p "100"
"100"
=> "100"
irb(main):003:0> p 100
100
數值表示與計算
Ruby進行數學函數計算,如平方根、sin等。使用數學函數時,必須在函數前加上Math.標識。如不想在函數前加上Math.時,則需要 include Math
這段代碼。
irb(main):007:0> Math.sqrt(10000)
=> 100.0
變量
"size = #{area}\n"
為整體的一個字符串。#{area}
方法表示把area的值嵌入到字符串中
x=10
y=20
z=30
area =(x*x+y*y+z*z)*2
print area,"\n"
print "size = #{area}\n
注釋
單行注釋:#
# 我是注釋
多行注釋:以 =begin
開頭,以 =end
結尾
=begin
我
是
注
釋
=end
控制語句
- 條件判斷:
if~then~end
if 條件 then
條件成立時的處理
else
條件不成立時的處理
end
eg:
a = 2
if a >= 1
print "bigger\n"
else
print "smaller\n"
end
- while 語句
while 循環條件 do
希望循環的處理
end
- times 方法
循環次數.times do
希望循環的處理
end
eg:
5.times do
print “hello,world!\n”
end
便利的對象
- 數組
Ruby中數組的大小是按照實際情況自動調整的,即動態數組。
Ruby數組支持多種不同對象的混合保存。
mixed = [1,"AAA",2,"BB",3]
數組的大小
mixed.size => 5
數組的循環Ruby中提供了each方法便利整個數組,each
后面在do~end
之間的部分稱為塊(block),塊的開始部分稱為|變量|
。each方法會吧數組元素逐個拿出來,賦值給指定的|變量|
,那么塊里面的方法就可以通過訪問該變量,實現循環遍歷數組的操作。
數組.each do |變量| 希望循環的處理end
eg:
names = ["zhao","qian","sun","li"]
names.each do |n|
puts n
end
- 散列
散列(hash)是程序里常用的容器。散列是鍵值對(key-value pair)的一種數據結構。在Ruby中,一般以字符串或者符號(symbol)作為鍵,用來保存對應的對象。
- 符號(symbol)
- 可以理解為輕量級的字符串,也是對象
- 一般用作名稱標簽使用,用來表示方法等的對象名稱
- 像散列這種單純判斷"是否相等"的處理中效率較高
- 創建方式,只需在標示符的開頭加上:就可以了
符號與字符串間相互轉換
symbol.to_s #將符號轉換為字符串
string.to_sym #將字符串轉換為符號
散列創建的方法與數組差不多,但使用的是{}。散列定義有兩種方法。
eg:
address = {name: "nantongdajie",id:"145",info:"heu"}
student = {:name=>"tars",:id=>30}
address.each do |key,value|
puts "#{key}:#{value}"
end
student.each do |key,value|
puts "#{key}:#{value}"
end
運行結果
hash_demo.rb
name:nantongdajie
id:145
info:heu
name:tars
id:30
Tips
Ruby 中一切數據都是對象。
pp 方法
Ruby 除了提供 p
方法外,還提供類似作用的方法 pp
。pp
是英語pretty print
的縮寫。
eg:
v = [{
key00: "value01",
key01: "value02",
key02: "value03"
}]
p v
pp v
與p方法不同,pp方法在輸出對象結果時,為了更容易看懂,會適當地換行以調整輸出結果。
循環語句、方法及其主要用途
方法 | 主要用途 |
---|---|
times 方法 | 確定循環次數 |
for 語句 | 從對象取出元素時使用(each 語法糖) |
while 語句 | 希望自由指定循環條件時使用 |
until 語句 | 使用 while 語句使用循環條件變得難懂時使用 |
each 方法 | 從對象取出元素時使用 |
loop 方法 | 不限制循環次數時使用 |
do~end & {~}
- 程序是跨行時用 :do ~ end
- 程序在一行寫時用:{~}
先整理到這,路還很長,還需學習