哈囉今晚

自言自語礙到誰.

Ruby訓練營

| Comments

好不容易,有大咖願意到台南來教授Rbuy,早早報了名,為了上這個課,我還一夜興奮的睡不著。

首先介紹Ruby的管理套件,推薦的是RVM,不過可惜我用的rbenv好像不太好用,後來還是想裝RVM來玩玩看。不過一直失敗,不知道那裏出了問題。大家可以參考這篇文章

rvm list known這是列出已經有的套件
rvm install 版本 可以指定版本安裝
rvm use 版本 可以指定版本使用

而我的Homebrew要更新Ruby,就用brew update ruby要安裝某一版本的rbenv install 版本,指定某一版本的rbenv global 版本

還有gem也是需要稍微摸一下,gem install 套件名字
gem env可以知道環境內容

以下開始講Ruby

介紹一個網站Ruby手冊,很多基本功可以在這裡看到,有不會的都可以查。 Ruby的常數第一個字母要大寫,但是好像也可以改。
ruby有個好笑的地方,就是一般都是if …elseif,但不知道是日本英文太差還是怎樣,這裡要拼成elsif,少掉一個英文e
ruby的彈性太大,甚至可以這樣寫puts "hello" , if a>2 另外putsprint的差別在於puts會斷行,所以龍哥都用p就好了

另外有兩個指令BEGINEND,挺有意思的。不過這兩個東西不管擺在程式哪裡,只要是BEGIN一定會先被執行,END一定會擺在後面。

Array陣列

通常用[字串1,字串2….]來代表,但也可以用%W,例如

1
2
list=[1,2,3,4]  
%w(1,2,3,4)

習題:將1,3,5,1,7,nil,7,排序,並且去掉nil和重複的數字

1
2
list =[1,3,5,1,7,nil,7]
puts list.compact.sort.uniq

介紹幾個變數

chopchop!的差別,只要在於chop只是顯示出來少一個字,對於原來的字串沒有任何變動,但是chop!就是真正砍掉陣列裡面的資料了,龍哥說有驚嘆號就好像警告你這個有副作用,要小心使用。

sort是一個排序的好東西,但是缺點不能把nil排除掉,所以字串中如果有nil,要使用compact來專門處理nil。還有一個uniq是找出唯一的字串。

mapeach這兩個用法很類似,

習題:要怎麼將[1,2,3,4,5]變成[1,3,5,7,9]

1
2
list=[1,2,3,4,5]
p list.map{|x|x*2-1}

習題:要從1~52隨機挑出5個不重複的數字。

1
2
cards = (1..52) # (a..b)是指a到b,但是如果(a...b),則是到b前面一個數字
p cards.to_a.sample(5) #sample 就是取出n個數字,不會重複,抽獎機器可以用到,to_a就是變成陣列,類似的有to_i,to_s,都很常用到。

sleep 秒數,可以讓程式停止

習題:要從1加到100

1
2
puts (1..100)to_a.inject{|sum,i|sum+i}
puts (1..100)to_a.inject(:+)

接下來介紹自己定義,例如

1
2
3
def calc(n.m)
return n*m
end

puts calc (2,5)答案會是10

upto 和 downto ,這兩個也可以參考一下。

其實龍哥講的很不錯,但是因為我吸收差,所以很隨便的寫了一些殘破的手冊,但是我可以確定一件事情,Ruby的確是個很好學的語言,也真的會越寫越快樂,我要開始去摸索Rails,希望不要太難。

對了,還有一個重點,請配合sublime text 2服用,用Build的功能,可以直接執行,看到結果,真是太快樂了啦!

Comments