常見的冒號位置,它們之前有什么區別?
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