读书人

ruby中星号(*)的功用

发布时间: 2013-11-30 22:36:00 作者: rapoo

ruby中星号(*)的作用

? ? 星号 asterrisk ?['?st?r?sk]

?

=========================我是左右对称的分割线,下边正文开始=========================

??

?1.有正常的乘法功能

?

 3 * 4 == 12 # => true

?

?2.数组*integer

?

[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]  testFun(*a) == testFun(1 , 2) != testFun([1,2])  

?

??如 gem redis-namespace中的代码:

?

Hash[*key.map {|k, v| [ add_namespace(k), v ]}.flatten]

?

? 又如:

?

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}

?

参考连接:

?

? ?https://github.com/resque/redis-namespace/blob/master/lib/redis/namespace.rb#L389

? ?http://wuhuizhong.iteye.com/blog/219540

读书人网 >Ruby Rails

热点推荐