Soumettre la recherche
Mettre en ligne
001 Ruby小觀念與小技巧
•
5 j'aime
•
744 vues
Bruce Li
Suivre
self是誰 symbol與string的不同 淺談Ruby的自省能力 Bonus小技巧:each_with_index
Lire moins
Lire la suite
Signaler
Partager
Signaler
Partager
1 sur 48
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
003 Ruby小觀念與小技巧Part2
003 Ruby小觀念與小技巧Part2
Bruce Li
006 實作小玩具功能:chrome desktop notification
006 實作小玩具功能:chrome desktop notification
Bruce Li
RSpec best practice - avoid using before and let
RSpec best practice - avoid using before and let
Bruce Li
Unlock dependency between client teams and API team with API mock and proxy
Unlock dependency between client teams and API team with API mock and proxy
Bruce Li
Make your Rails console AWESOME (Ruby SG meetup 2016-03-29)
Make your Rails console AWESOME (Ruby SG meetup 2016-03-29)
Bruce Li
Refactoring Workshop (Rails Pacific 2014)
Refactoring Workshop (Rails Pacific 2014)
Bruce Li
011 優化時間分配的 app 跟心得
011 優化時間分配的 app 跟心得
Bruce Li
Rails Code Club 3 @ Taipei
Rails Code Club 3 @ Taipei
Bruce Li
Recommandé
003 Ruby小觀念與小技巧Part2
003 Ruby小觀念與小技巧Part2
Bruce Li
006 實作小玩具功能:chrome desktop notification
006 實作小玩具功能:chrome desktop notification
Bruce Li
RSpec best practice - avoid using before and let
RSpec best practice - avoid using before and let
Bruce Li
Unlock dependency between client teams and API team with API mock and proxy
Unlock dependency between client teams and API team with API mock and proxy
Bruce Li
Make your Rails console AWESOME (Ruby SG meetup 2016-03-29)
Make your Rails console AWESOME (Ruby SG meetup 2016-03-29)
Bruce Li
Refactoring Workshop (Rails Pacific 2014)
Refactoring Workshop (Rails Pacific 2014)
Bruce Li
011 優化時間分配的 app 跟心得
011 優化時間分配的 app 跟心得
Bruce Li
Rails Code Club 3 @ Taipei
Rails Code Club 3 @ Taipei
Bruce Li
Rails Code Club 2 @ Taipei
Rails Code Club 2 @ Taipei
Bruce Li
010 Better and Better 工程師就業兩年多的心得雜談
010 Better and Better 工程師就業兩年多的心得雜談
Bruce Li
009 增進效率的雜七雜八mac快速鍵與設定 part 2
009 增進效率的雜七雜八mac快速鍵與設定 part 2
Bruce Li
008 vim超基礎入門
008 vim超基礎入門
Bruce Li
007 Facebook Open Graph 相關開發簡單介紹 公開版
007 Facebook Open Graph 相關開發簡單介紹 公開版
Bruce Li
004 動機 單純的力量 讀書心得
004 動機 單純的力量 讀書心得
Bruce Li
002 增進效率的有的沒的快速鍵與設定
002 增進效率的有的沒的快速鍵與設定
Bruce Li
Contenu connexe
Plus de Bruce Li
Rails Code Club 2 @ Taipei
Rails Code Club 2 @ Taipei
Bruce Li
010 Better and Better 工程師就業兩年多的心得雜談
010 Better and Better 工程師就業兩年多的心得雜談
Bruce Li
009 增進效率的雜七雜八mac快速鍵與設定 part 2
009 增進效率的雜七雜八mac快速鍵與設定 part 2
Bruce Li
008 vim超基礎入門
008 vim超基礎入門
Bruce Li
007 Facebook Open Graph 相關開發簡單介紹 公開版
007 Facebook Open Graph 相關開發簡單介紹 公開版
Bruce Li
004 動機 單純的力量 讀書心得
004 動機 單純的力量 讀書心得
Bruce Li
002 增進效率的有的沒的快速鍵與設定
002 增進效率的有的沒的快速鍵與設定
Bruce Li
Plus de Bruce Li
(7)
Rails Code Club 2 @ Taipei
Rails Code Club 2 @ Taipei
010 Better and Better 工程師就業兩年多的心得雜談
010 Better and Better 工程師就業兩年多的心得雜談
009 增進效率的雜七雜八mac快速鍵與設定 part 2
009 增進效率的雜七雜八mac快速鍵與設定 part 2
008 vim超基礎入門
008 vim超基礎入門
007 Facebook Open Graph 相關開發簡單介紹 公開版
007 Facebook Open Graph 相關開發簡單介紹 公開版
004 動機 單純的力量 讀書心得
004 動機 單純的力量 讀書心得
002 增進效率的有的沒的快速鍵與設定
002 增進效率的有的沒的快速鍵與設定
001 Ruby小觀念與小技巧
1.
30分鐘技術分享
Ruby小觀念&技巧 By Bruce Li 2012/04/09 雲端線上科技股份有限公司 12年4月11日星期三
2.
目錄
• self是誰 • Symbol跟String的不同 • Ruby的自省能力 • ⼀一個小技巧 12年4月11日星期三
3.
目錄
• self是誰 • Symbol跟String的不同 • Ruby的自省能力 • ⼀一個小技巧 12年4月11日星期三
4.
self是誰
• 代表當前的object • 在最上層時,則為預設(main) 12年4月11日星期三
5.
規則
程式區塊 範例 self代表 (method外) main 最上層區塊 def m main class C C class內 def self.m C def m C的instance singleton def obj.m obj module M M module內 def m 混入M的物件 12年4月11日星期三
6.
最上層區塊
main main 12年4月11日星期三
7.
Class內 12年4月11日星期三
8.
Class內
bje ct) C o ass也是 ( cl 12年4月11日星期三
9.
Class內
bje ct) C o ass也是 ( cl C 12年4月11日星期三
10.
Class內
bje ct) C o ass也是 ( cl C #<C:0x007fbf9284de70> 12年4月11日星期三
11.
singleton method
#<Object:0x007fd79b84f448> 12年4月11日星期三
12.
singleton method
#<Object:0x007fd79b84f448> = obj 12年4月11日星期三
13.
singleton method
#<Object:0x007fd79b84f448> = obj 12年4月11日星期三
14.
module內
M 12年4月11日星期三
15.
module內
M #<C:0x007fa8fb04e970> stance 的 i n C 12年4月11日星期三
16.
應用在宣告class method
兩者都可以! 因為self此時代表M 用self的好處是更名時方便 不過被其他區塊蓋到的話可能會讓self變成代表別的物件 (這段程式的用途...不要問!) 12年4月11日星期三
17.
class也是object
內建的 Klass Class undefined method `new' (Klass這個class,是Class的instance object) 12年4月11日星期三
18.
呼叫method時
省略小數點(.) • 即是送訊息給self物件 12年4月11日星期三
19.
呼叫method時
省略小數點(.) • 即是送訊息給self物件 • 與變數名稱相同時,變數優先 12年4月11日星期三
20.
同名時 12年4月11日星期三
21.
同名時 12年4月11日星期三
22.
呼叫method時
省略小數點(.) • 即是送訊息給self物件 • 與變數名稱相同時,變數優先 12年4月11日星期三
23.
呼叫method時
省略小數點(.) • 即是送訊息給self物件 • 與變數名稱相同時,變數優先 • 不過打從⼀一開始就不應該取成同名 12年4月11日星期三
24.
呼叫method時
省略小數點(.) • 即是送訊息給self物件 • 與變數名稱相同時,變數優先 • 不過打從⼀一開始就不應該取成同名 • 除了⼀一種狀況必須清楚指明self 12年4月11日星期三
25.
呼叫等號結尾的method
Ruby的syntax sugar 12年4月11日星期三
26.
呼叫等號結尾的method
Ruby的syntax sugar X nil 12年4月11日星期三
27.
呼叫等號結尾的method
Ruby的syntax sugar nil 12年4月11日星期三
28.
呼叫等號結尾的method
Ruby的syntax sugar nil 12年4月11日星期三
29.
呼叫等號結尾的method
Ruby的syntax sugar nil 30 √ 12年4月11日星期三
30.
目錄
• self是誰 • Symbol跟String的不同 • Ruby的自省能力 • ⼀一個小技巧 12年4月11日星期三
31.
目錄
• self是誰 • Symbol跟String的不同 • Ruby的自省能力 • ⼀一個小技巧 12年4月11日星期三
32.
Symbol跟String的不同
• 內容相同的symbol都代表同⼀一個物件 • 無法改變symbol的內容 • symbol效率比string好,很適合拿來當 hash的index 12年4月11日星期三
33.
代表同⼀一個物件
1.9.2p290 :001 > "a".equal?("a") => false 1.9.2p290 :002 > :a.equal?(:a) => true 12年4月11日星期三
34.
”equal?”的解說
• equal? 判斷是否指到同⼀一個object • eql? 判斷是否value與type都相同 • == 判斷value是否相同(因此17==17.0) 12年4月11日星期三
35.
無法改變symbol的內容
1.9.2p290 :001 > "a" + "b" => "ab" 1.9.2p290 :002 > :a + :b NoMethodError: undefined method `+' for :a:Symbol 12年4月11日星期三
36.
目錄
• self是誰 • Symbol跟String的不同 • Ruby的自省能力 • ⼀一個小技巧 12年4月11日星期三
37.
目錄
• self是誰 • Symbol跟String的不同 • Ruby的自省能力 • ⼀一個小技巧 12年4月11日星期三
38.
Ruby的自省能力
• 自省:檢查某些事物以確定它是什麼、 它知道什麼以及它能做什麼。 12年4月11日星期三
39.
• class #
"str".class => String • is_a? # "str".is_a?(String) => true • superclass # String.superclass => Object • ancestors • methods • instance_methods • singleton_methods 12年4月11日星期三
40.
• protected_methods
• private_methods • public_methods • public_instance_methods • protected_instance_methods • private_instance_methods 12年4月11日星期三
41.
• respond_to?
• 應用: x = :talk if obj.respond_to?(x) obj.__send__(x) end 12年4月11日星期三
42.
只顯示在該class定義的
methods:加上false [:dm, :cm, :nil?, :===, :=~, :! ~, :eql?, :hash, :<=>, :class, :singleton_class, ... (58個) [:dm] 12年4月11日星期三
43.
目錄
• self是誰 • Symbol跟String的不同 • Ruby的自省能力 • ⼀一個小技巧 12年4月11日星期三
44.
目錄
• self是誰 • Symbol跟String的不同 • Ruby的自省能力 • ⼀一個小技巧 12年4月11日星期三
45.
each with index 12年4月11日星期三
46.
each with index
√ 12年4月11日星期三
47.
end 12年4月11日星期三
48.
廣告
雲端線上徵Rails/iOS/Android工程師中 ‣ inside job board 我的技術&生活雜事部落格 ‣ http://littlebmix.blogspot.com/ 學習成功部落格 ‣ http://ascend-er.blogspot.com/ 12年4月11日星期三
Télécharger maintenant