Chinaunix
标题:
一句代码解析,关于Sub的使用
[打印本页]
作者:
evel
时间:
2013-06-01 11:49
标题:
一句代码解析,关于Sub的使用
初学者问问题:
my( $yy, $mm ,$dd ) = sub {($_[5]+1900, $_[4]+1, $_[3])}->(localtime);
不理解这里的sub的用法,sub{($v1,$v2,$v3)}->(localtime);
这里是列表上下文,localtime返回
# 0 1 2 3 4 5 6 7 8
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)
->的作用是什么?赋值?
sub这里没用用函数名?为什么?函数体怎么是一个列表而已?
如果我需要理解,有什么好资料可以推荐?
作者:
kjeldahl
时间:
2013-06-01 12:41
sub {}匿名函数,看成是$coderef->(args)就行了,args是localtime返回值,这个$coderef->(args)返回一个3值列表
作者:
yakczh_cu
时间:
2013-06-01 16:04
$a=sub{($v1,$v2,$v3)};
$b=$a->(localtime);
两步并成一步
作者:
moonlucifer
时间:
2013-06-01 18:56
给力啊, 学习了. 可以比较方便的针对列表中不同元素做不同的操作....
作者:
evel
时间:
2013-06-02 12:15
先执行应该是localtime,这里->是解子程序应用。localtime返回的的列表作为参数列表转递给sub函数,
但中间的sub使用我不是很熟悉。
什么叫匿名函数?为什么要有这种函数?主要是干啥用的?有啥好处?顶起来,希望高手给个通俗易懂的解释。谢谢!
作者:
wsxedcer
时间:
2013-06-03 08:21
先看看书吧,都有讲的
作者:
rubyish
时间:
2013-06-03 20:38
my( $yy, $mm ,$dd ) = sub {($_[5]+1900, $_[4]+1, $_[3])}->(localtime);
复制代码
谢谢!学习了!
作者:
唐归来
时间:
2013-06-03 21:10
不是很理解,
作者:
picbhan
时间:
2013-06-03 21:21
受教了,以前真没注意到这种写法。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2