常见的冒号位置,它们之前有什么区别?
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