ruby入門掌握其實很簡單,下麵對我司主要使用的部分入門做一個簡單的歸納總結: 文章結構: 1、變數 2、操作符 3、if~else~end 、unless 4、數組(Array) 5、哈希(Hash) 6、迴圈(each do|變數|) 1、變數操作 變數分為:整數型(int);浮點型(float ...
ruby入門掌握其實很簡單,下麵對我司主要使用的部分入門做一個簡單的歸納總結:
本文的文章結構:
1、變數
2、操作符
3、if~else~end 、unless
4、數組(Array)
5、哈希(Hash)
6、迴圈(each do|變數|)
1、變數
變數分為:整數型(int);浮點型(float);布爾型(bool);字元串型(string)
int型:1,2,3
float型:1.2
bool型:true/ false
string型:"abc"
不同類型間的轉換:
.to_f :轉為浮點型
.to_s:轉為字元串型
例如
p 123.to_s
=>"123"
變數分為:全局變數($),局部變數和類變數(@@),它們的作用範圍由大到小排列
2、對於變數而言含有的操作符
對於int和float,為倍數相乘,但是對於字元串,即為重覆幾次,例如:
str1 = "a"
p str13
=>"aaa"
對於字元串,+也有特殊意義,為字元串間的簡單拼接
②|| 或(一真全真)、&&且(一假全假) 、!非 (特別註意 nil為假)
③三目操作符:
口?口:口 問號前面的是布爾型的判斷,true的話執行第二個方塊的語句,false的話執行第三個方塊的語句
例如:
value =(nil ? 0 : 1)
p value
=>1
⑤== 表示判斷,兩側是否相等,相等為true,不相等為false
3、if語句的基本知識
if ~else~end 不要丟掉end哦!!!
例如:
num = 100
if num <100
p "數字小於100"
elsif num >100 #elsif 後面還是可以加判斷條件的
p "數字大於100"
else #else 就是指其他的,後面不能再加判斷條件
p "數字等於100"
end
=> "數字等於100"
if還能這樣用:
num = 100
p "數字等於100" if num =100 #if後面的判斷為真後,再去執行前面的語句
=> "數字等於100"
與if一樣同為判斷的還有一個方式:unless 用法就是unless後面的條件不成立,才會執行下一條語句,否則就跳到下一個判斷,因為邏輯比較繞,所以一般多於1個判斷的時候,就直接用if好了。
例如:
num = 50
p "數字小於100" unless num>100
4、數組的基礎知識及方法
數組(Array)
創建一個新的數組可以這樣:arr = Array.new ,或者直接定義一個空的數組 :arr = [ ],這個中括弧就是數組的標誌。
①最重要的知識點就是 索引,就是數組所在的位置,它是有序的,在物理磁碟按照順序存儲,它跟python一樣,都是從0開始計數
arr = [1,2,3,4,5]
p arr[0]
=>"1" #拿出來一個元素,不是數組哦
p arr[-1] #取倒數第一個元素
=>"5"
②數組內的操作符:
加號(+)單純的將兩個數組連接,不做去重;
減號(-)用前一個數組減去後一個數組裡的東西,只對被減數做修改;
取並集“|”(可以看到,比對於變數的操作,少了一個豎杠);
取交集“&”(可以看到,比對於變數的操作,少了一個&);
數組間的拼接: “<<” 這個字元的意思是拼接,並不是將兩個數組簡單的拼接起來,這跟字元串中的用法不一樣,它是把箭頭後面的元素作為一個新的元素加到左邊的數組裡面去。
例如:
數組1 = ['1','2','3']
數組2 = ['1','3','4']
p 數組1 - 數組2
=>["2"]
p 數組1 + 數組2
=>["1", "2", "3", "1", "3", "4"]
p 數組1 | 數組2 #數組裡的取並集,是一個豎杠"|",而變數裡面是"||"
=>["1", "2", "3", "4"]
p 數組1 & 數組2 #你看,數組裡的取交集,是一個&
=>["1", "3"]
例如:
p ['1','2','3']<<["aaa"]
=> ['1','2','3',['aaa']]
方法:
.empty? #判斷是否為空,輸出結果為布爾型
a = ["a","b","c"]
p a.empty?
=>false
.include?("變數") #判斷是否含有某元素,輸出結果為布爾型
a = ["a","b","c"]
p a.include?("c")
=>true
.index("元素") #尋找某個元素的索引
a = ["a","b","c"]
p a.index("c")
=>2
.size #查詢數組的長度
a = ["a","b","c"]
p a.size
=>3
5、哈希的基礎知識和方法
創建一個新的哈希可以這樣:hash = Hash.new ,或者直接定義一個空的哈希 :hash = {},這個中括弧就是哈希的標誌。
哈希是以鍵值對的形式存在的,表達方式有2種,我司常用的是{“a”=>“b”}形式,一個key可對應多個value,它們是在物理地址是不連續的,所以沒有索引的說法,而是通過key去查找對應的value,效率會高於數組。這個哈希其實就相當於python里的字典。
所以定位哈希的時候,是用key去定位的,hash[key ],例如:
hash= {"a"=>"b","c"=>"d"}
p hash["c"]
=>"d"
下麵簡列一下hash的方法:
empty? #判斷是否為空,輸出結果為布爾型
a = {}
p a.empty?
=>true
.include?("value") #判斷是否含有某元素,輸出結果為布爾型
hash= {"a"=>"b","c"=>"d"}
p hash.include?("f")
=>true
.size #查詢哈希的個數,記住,是以鍵(keys)為標準
hash= {"a"=>"b","c"=>"d"}
p hash.size
p=>2
.keys #這個方法是將哈希里的所有鍵取出來,組成1個數組
hash= {"a"=>"b","c"=>"d"}
p hash.keys
=>["a", "c"]
.value #這個方法是將值取出來,組成一個數組
hash= {"a"=>"b","c"=>"d"}
p hash.values
=>["b", "d"]
另外,哈希裡面的value,不一定是字元串,還有可能是數組,例如:
hash= {"a"=>["b","e"],"c"=>"d"},這樣都是允許的,如果我想定位到元素“e”,很簡單,如下操作就可以:
p hash["a"][1]
=>"e"
6、迴圈
迴圈首先簡單介紹三種方式:請記住都有end作為結尾哦!~並且這裡面的變數並沒有用""引號給引起來
①.each do |命名變數|
...
end
②.each_with_index do |元素,索引| #這裡命名變數,是2個變數。應用於數組,將數組的元素拿出來,並將其位置表示出來.特別需要註意的是,這裡面的變數並沒有用""引號給引起來
p 元素
p 索引+1
end
③0.upto (n) do |命名變數| #這個方法可以用來將數組(array)進行迴圈,且n>=0,當然,那個0也不是固定值,看你需要定位到哪個元素。而且既然有upto,當然也就有downto,這個不多說。記得凡是方法,都有".";中間都有空格!!
...
end
現在舉幾個例子熟悉一下:
對於數組的迴圈,取出裡面的所有元素,舉例如下:
arr = ["a", "b", "c"]
arr.each do |元素|
p 元素
end
=>"a"
"b"
"c"
arr = ["a", "b", "c"]
arr.each_with_index do |元素,索引|
p 元素
p 索引+1
end
=>"a"
1
"b"
2
"c"
3
arr = ["a", "b", "c"]
0.upto (2) do |索引|
p arr[索引]
end
=>"a"
"b"
"c"
對於哈希的迴圈,一種就是將每一個的key-value組成一個數組,並將其輸出。例如:
hash= {"a"=>["b","e"],"c"=>"d","dada"=>[1,2,3]}
hash.each do |內容|
p 內容
end
=>["a", ["b", "e"]]
["c", "d"]
["dada", [1, 2, 3]]
如果針對上面的哈希,我想要輸出形成的數組的特定值,比如第一個元素:
hash= {"a"=>["b","e"],"c"=>"d","dada"=>[1,2,3]}
hash.each do |內容|
p 內容[0]
end
=>"a"
"c"
"dada"
hash= {"a"=>["b","e"],"c"=>"d","dada"=>[1,2,3]}
hash.each do |內容|
p 內容[1][0]
end
=>["b", "e"]
"d"
[1, 2, 3]
hash= {"a"=>["b","e"],"c"=>"d","dada"=>[1,2,3]}
hash.each do |內容|
p 內容[1][1]
end
=>"e"
nil #由此可以看出,當索引超出了數組的長度時,不會報錯,而是nil
2
另一種就是輸出鍵“\n”值,但不組成數組,用的是.each do|鍵,值|,例如:
hash= {"a"=>["b","e"],"c"=>"d","dada"=>[1,2,3]}
hash.each do |鍵,值|
=>p 鍵
p 值
end
相信通過上面的簡要介紹,對於ruby語法的基礎是有了,繼續加油更新哦~~