ruby中星号(*)的功用

来源:互联网 发布:手机如果申请淘宝店铺 编辑:程序博客网 时间:2024/04/28 02:48

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}
0 0