binghc 发表于 2010-6-21 14:03:43

[已解决]怎么定义一个带可选参数的函数?

本帖最后由 binghc 于 2010-10-17 21:16 编辑

如题,论坛搜索过找不到,高手解答

本人现在已知道该怎么做

qj395202409 发表于 2010-6-21 14:06:53

看源码作品~~~~~

afan 发表于 2010-6-21 14:19:17

我以前回复短消息的,复制过来
函数的结构简单解释:

Func 函数名(必须或可选参数)
        函数内代码
EndFunc 函数结束

使用时用 “函数名(必须或可选参数)” 即可调用

如:

a()

func a()
        msgbox(0, 0, 0)
endfunc

这段代码就是调用没有参数的函数 a(),结果就会执行 msgbox(0, 0, 0)

或者

a('ok')

func a($s)
        msgbox(0, 0, $s)
endfunc

这段代码就是调用函数并代入必选参数'ok' ,结果就会执行 msgbox(0, 0, 'ok')

还或者

a('ok')

func a($s, $b = 'yes')
        msgbox(0, $b, $s)
endfunc

这段代码就是调用函数并代入必选参数'ok' ,而函数内本身有个可选参数$b,结果就会执行 msgbox(0, 'yes', 'ok')

如果调用 a('111', 'aaa') ,结果就会执行 msgbox(0, 'aaa', '111')

binghc 发表于 2010-6-24 17:30:18

我要的是像winwait("",[""])这种函数

afan 发表于 2010-6-24 17:31:41

回复 4# binghc


    你确定看懂了我上面写的简单例子?

republican 发表于 2010-6-24 22:33:45

回复 4# binghc
A大应该挺无奈的.

举个例子:Func _STUAuthConnect($sMode=0,$UserNameNew=$UserNameNew,$UserPassWordNew=$UserPassWordNew,$IpAdress=$IpAdress,$Foreign="true")
If $sMode=0 Then ;查询
ElseIf $sMode=1 Then ;登陆
ElseIf $sMode=2 Then ;保持
ElseIf $sMode=3 Then ;注销       
EndIf_STUAuthConnect() 即是查询
_STUAuthConnect(3,"xxxx") 即是注销
_STUAuthConnect(1,"xxx","xxx","0000") 即是登陆

如果你改成这样:
Func _STUAuthConnect($sMode,$UserNameNew=$UserNameNew,$UserPassWordNew=$UserPassWordNew,$IpAdress=$IpAdress,$Foreign="true")

则_STUAuthConnect() 是错误语法,必须输入_STUAuthConnect(0)才能查询

t87564833 发表于 2010-6-25 11:55:06

呵呵·学习了我Func用的还不是很熟练

hzxymkb 发表于 2010-6-25 12:36:35

本帖最后由 hzxymkb 于 2010-6-25 12:52 编辑

好多高人呀!来这里又学到一招!谢谢楼上的高人哈!
页: [1]
查看完整版本: [已解决]怎么定义一个带可选参数的函数?