&: and &. in Ruby

&: and &. in Ruby

更新於 發佈於 閱讀時間約 2 分鐘

直接來看範例吧

&:

&:將一組陣列中的元素轉換成字串
cats = [1, 2, 3, 4]
當使用:
cats.map do |x| x.to_s end
cats.map {|x| x.to_s }
會得到:
["1", "2", "3", "4"]

其中的block以及block變數可以用&:代替,然後:後面接續方法:
cats.map(&:to_s)

&.

範例1
a = []
x = a.nil?
puts x => true;

a = []
x = a&.nil?
puts x => 不會執行puts

加入&.會判斷receiver如果是nil,就不會執行puts。

範例2
@candidate&.create
如果 @candidate為nil,就不會執行create方法,如此便不會出現undefined method `[]' for nil:NilClass的錯誤訊息。
avatar-img
Mike的沙龍
1會員
13內容數
留言
avatar-img
留言分享你的想法!
Mike的沙龍 的其他內容
  一切的重點就是在利用文字排版與語言解構使程式碼more「readable」   範例如下列網址,有興趣深入了解可進去觀看
1. p1 = Product.new(name:"衛生紙") 接著執行 p1.stores = s1 卻出現 undefined method "each"的錯誤訊息。(如下圖一) 解決方法: 強制給實體掛上store_id 接下來處理Product
在第一次建立rails專案時,通常都會遇到不少問題,像我是使用windows系統,所以也經歷了一些麻煩。如果各位第一次建立rails專案就可以看到下圖綠色字體的成功字樣,那真的如天選之人般幸運阿~ 如果你跟我一樣注定要經歷windows系統的苦痛,就請繼續看下去吧QQ
public: 完全公開的方法,內外皆可存取。 private: 對外限制,不能有特定的receiver,故僅能在類別方法裡使用,且不能有receiver。 protected : 對外有限制,不能有receiver,但在class裡面則可有receiver也可以沒有receiver。
  一切的重點就是在利用文字排版與語言解構使程式碼more「readable」   範例如下列網址,有興趣深入了解可進去觀看
1. p1 = Product.new(name:"衛生紙") 接著執行 p1.stores = s1 卻出現 undefined method "each"的錯誤訊息。(如下圖一) 解決方法: 強制給實體掛上store_id 接下來處理Product
在第一次建立rails專案時,通常都會遇到不少問題,像我是使用windows系統,所以也經歷了一些麻煩。如果各位第一次建立rails專案就可以看到下圖綠色字體的成功字樣,那真的如天選之人般幸運阿~ 如果你跟我一樣注定要經歷windows系統的苦痛,就請繼續看下去吧QQ
public: 完全公開的方法,內外皆可存取。 private: 對外限制,不能有特定的receiver,故僅能在類別方法裡使用,且不能有receiver。 protected : 對外有限制,不能有receiver,但在class裡面則可有receiver也可以沒有receiver。