Ruby字元串、條件、循環、數組、Hash、類基本操作筆記

来源:互联网 发布:网络推广部门口号 编辑:程序博客网 时间:2024/05/15 13:59

一、字元串操作


字元串插值


1.#{}: 任意放置在#{}中的合法Ruby代碼都將被求值,並被替換為求值結果插入到原位置


2.單引號與雙引號差別:


雙引號允許字元轉義,單引號不允許轉義,里是什麼字元,用戶看到的就是什麼字元

單引號不允許字元插值


字元串拆分


1.以空格拆分:string.split(' ')字元串連接


方法一、'Ruby' + 'Monk', stdout: RubyMonk

方法二、"Monk".concat("Ruby") stdout: MonkRuby

方法三、"Ruby" << "Monk" stdout: RubyMonk


子字元串替換


替換第一個出現的搜索目標:"I should look into your problem when I get time".sub('I','We')

替換所有符合條件的字元串:"I should look into your problem when I get time".gsub('I','We')


二、條件與循環:Ruby中的控制結構


Ruby布爾表達式


Ruby 使用 == 運算符來比較對象:name == "Bob"

取非表達式:! (name == 'Bob')


if..else 結構 在 Ruby 語言中,? 和 : 可以理解為它們分別對應"then" 和 "else" Ruby語言中的循環


1.無限循環

loopdo.....end

2.執行代碼片段N次

times do......end

三、數組


創建空數組 '[]' 或者Array.new


在數組裡查詢數據

[1, 2, 3, 4, 5][2]


結果是
3

Ruby的索引從開頭開始是從0開始的,從結尾開始是從-1開始的


數組的增長

[1, 2, 3, 4, 5]<<"woot" 結果[1, 2, 3, 4, 5, "woot"] 

基本數組運算

1.數組變換

[1, 2, 3, 4, 5].map { |i| i + 1 }


結果
[2, 3, 4, 5, 6] 

2.過濾數組元素

[1,2,3,4,5,6,7].delete_if{|i| i < 4 } 


結果
[2, 4, 6] 


提取長於五個字母的字元串
names = ['rock', 'paper', 'scissors', 'lizard', 'spock']names.select {|word| word.length > 5}


結果
["scissors", "lizard"] 

3.刪除元素

刪除下面數組的元素『5'
[1,3,5,4,6,7].delete 5[1,2,3,4,5,6,7].delete_if{|i| i < 4}  

迭代 1.each 循環

array = [1, 2, 3, 4, 5]array.each do |i|puts iend

四、Ruby哈希


1.創建一個哈希 空哈希可以使用兩個大括弧{}來定義,Hash.new

restaurant_menu = {"Ramen" => 3,"Dal Makhani" => 4,"Tea" => 2}

2.從哈希中取值 從restaurant_menu哈希中取得一碗拉麵(Ramen)的價格

restaurant_menu["Ramen"] 結果


3.修改哈希 添加新項

restaurant_menu = {}restaurant_menu["Dal Makhani"] = 4.5restaurant_menu["Tea"] = 2 4.遍歷哈希restaurant_menu = { "Ramen" => 3, "Dal Makhani" => 4, "Coffee" => 2 }restaurant_menu.each do | item, price |puts "#{item}: $#{price}"end 

結果

Ramen: $3Dal Makhani: $4Coffee: $2 

用each方法把restaurant_menu中所有項目價格都提高10%

restaurant_menu = { "Ramen" => 3, "Dal Makhani" => 4, "Coffee" => 2 }restaurant_menu.each do |item, price|restaurant_menu[item] = price + (price * 0.1)end

5.從哈希中取鍵和值
每個哈希對象都有2個方法: keys 和 values。

keys方法返回一個包含哈希中所有的鍵的數組;類似的, values方法返回一個包含所有的值的數組。

獲得restaurant_menu哈希中所有的鍵
restaurant_menu = { "Ramen" => 3, "Dal Makhani" => 4, "Coffee" => 2 }restaurant_menu.keys


結果
["Ramen", "Dal Makhani", "Coffee"]

五、類


Ruby使用兩個空格縮進的慣例,代碼塊通常以關鍵字end封閉 通常,在某個類上調用方法 new 會創立一個實例



Object.new

1.構建你自己的類

class Rectangleend 

計算長方形的周長和面積類實例

class Rectangledef initialize(length, breadth)@length = length@breadth = breadthenddef perimeter2 * (@length + @breadth)enddef area@length * @breadthendend

0 0