yarsye 发表于 2011-5-4 09:44:44

(已解决)定义函数参数时加入Byref后就不可以给之前的参数赋值?

本帖最后由 yarsye 于 2011-5-4 15:03 编辑


dim $a
test(2,3,$a)
msgbox(0,1,$a)
func test($x = 2, $y = 3,byref $z)
$z = $x+$y
endfunc
这样是会报错的 说:all params followed by optional params must be optional意思应该是说 :通过可选的参数,必须遵守所有参数是可选的
不太懂他的意思,当然当我把func test($x = 2, $y = 3,byref $z) 中$x,$y不赋值就行了,这是为什么?是不可以在byref之前的参数赋值吗?

解决:楼下两位两大的解释很到位,为什么我就不能独立分析出来呢,只是在你们讲了后才明白。
   感谢楼下大侠了

3mile 发表于 2011-5-4 10:02:14

个人理解,可选参数应该放到所有参数的后面吧.
dim $a
test($a)
msgbox(0,1,$a)
func test(byref $z,$x = 2, $y = 3)
        if $x=0 then $x=2
        if $y=0 then $y=3
        $z = $x+$y
endfunc

yarsye 发表于 2011-5-4 10:28:27

回复 2# 3mile


    谢谢 !
   原来如此啊。

netegg 发表于 2011-5-4 13:32:45

all params followed by optional params must be optional
所有由可选参数跟随的参数必须也是可选的

yarsye 发表于 2011-5-6 10:58:03

感谢了 结贴

ncxj 发表于 2015-10-17 23:44:08

学习了,谢谢上面2位的解疑
页: [1]
查看完整版本: (已解决)定义函数参数时加入Byref后就不可以给之前的参数赋值?