ruby中星号(*)的作用
- 有正常的乘法功能
3 * 4 == 12 # => true
- 数组*integer
[1,2,3] * 2 = [1, 2, 3, 1, 2, 3] ;
[1,2 ,[3 , [4 ,5]]] *2 = [1,2 ,[3 , [4 ,5]] , 1,2 ,[3 , [4 ,5]]]
3. 字符串*integer
"hello"*2 = "hellohello"
4.创建数组
*a = 1,3,"as" # => 相当于 a = [1,3, "as"]
5. 数组参数传入时的前缀eg:
a= [1 , 2]
demoFun(*a) == demoFun(1 , 2) #正确
demoFun(*a)== demoFun([1,2])#错误
demoFun(*a) 等同于 demoFun(1,2)
6.查询sql:
sql:
values = ['小明',15]
User.where('name=? and age = ?', *values) #=> 等同于 User.where('name=? and age = ?', "小明",'15')
7.hash中的含义
Hash[:a, 1, :b, 2] # => {:a => 1, :b => 2}
array = [:a, 1, :b, 2]
Hash[array] # => {}
Hash[*array]#=> 相当于 Hash[:a, 1, :b, 2] #=> {:a => 1, :b => 2}