Ruby中的冒號

常見的冒號位置,它們之前有什么區別?

1) abc:

2) :xyz

3) abc::xyz

4) abc: :xyz

5) abc: xyz

6) :abc => xyz


1)?abc:?不能單獨使用

2)?:xyz?symbol變量,與string類型用法相同,但比string節省存儲空間

:xyz.class => Symbol

3)?abc::xyz?代表命名空間,可有用在module和class上

Example code:

module ABC

? class Xyz

? ? def initialize

? ? ? @size = 400

? ? end

? ?end

end

x = ABC::Xyz.new

4) abc: :xyz #hash中的key和value都是symbol時,可以這么寫,等同于 hash={:abc=>:xyz}.

hash = {abc: :xyz}?

5) abc: xyz #hash中key是symbol, value是字符串 等同于hash={:abc=>xyz}

xyz = "just a test"

hash = {abc: xyz}?

6) :abc => xyz # 同上

xyz = "just a test"

hash = {:abc => xyz}?

7) 補充一個三元運算符:

abc = 1

xyz = 2

result = abc > xyz ? abc : xyz

=> result = 2

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容