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