binghc 发表于 2011-7-14 10:17:12

@NumParams 宏如何使用?

@NumParams使用方法给个例子?

yarsye 发表于 2011-7-14 10:45:17

Func Test($flag)
If 1==$flag Then msgbox(0,1,1)
return @NumParams
EndFunc
$value = Test(1)
Msgbox(0,3,$value)

binghc 发表于 2011-7-14 14:40:43

回复 2# yarsye


    差不多了解用法了,不过这个宏好像没什么用啊,至少目前没发现

happytc 发表于 2011-7-14 20:15:18

很有用的
特别当一个自定义函数有些是赋了初值的,这样可以知道某次函数调用时,倒底用了几个参数

Func Test($flag, $aa =2)
        If 1==$flag Then msgbox(0,1,1)
        return @NumParams
EndFunc
$value = Test(1, 3)
$Val = Test(1)
Msgbox(0,3,$value)
Msgbox(0,0,$val)

binghc 发表于 2011-7-14 23:47:28

回复 4# happytc


    二楼的代码我已经测试过你这样的代码了,但是我不知道在实际应用中,知道函数中用了几个参数有

什么用,诺想到,举个具体点儿的实例?

lainline 发表于 2011-7-14 23:55:41

功能大概和函数重载差不多 参数不同处理方法不同

binghc 发表于 2011-7-15 17:17:09

回复 6# lainline


   用实例说话

binghc 发表于 2011-7-21 15:45:34

哈~我终于发现了@NumParams在实际运用中的意义!!{:face (303):}

daiyu116 发表于 2011-7-22 09:05:43

回复 8# binghc

这么兴奋,举个例子呗

happytc 发表于 2011-7-22 10:00:25

回复binghc

这么兴奋,举个例子呗
daiyu116 发表于 2011-7-22 09:05 http://www.autoitx.com/images/common/back.gif


    很容易想到用处,虽然可以用别的方法代替,如:

_Test(0)

Func _Test($A = 0, $B = 3, $C = 6)
        MsgBox(0,0,"4个参数中调用了默认的:" & (4 - @NumParams) & "个")
EndFunc

binghc 发表于 2011-8-13 22:26:32

回复 10# happytc


    目前已经想到两种用法,给提示其中一种可以用来模拟定义一个接收变长参数的函数,这听起来有点疯狂吧,哈哈{:face (303):}

pusofalse 发表于 2011-8-13 22:59:21

回复 11# binghc


    不如直接贴代码 来得更加简洁明了。

happytc 发表于 2011-8-13 23:48:09

回复 12# pusofalse


    我经常用它的是这样用:直接进入界面的某个标签 :


Func Config($TabFlag=0)
If @NumParams > 0 Then
        Switch $TabFlag
                Case 0
                        GUICtrlSetState($RecordModeTab, $GUI_SHOW)
                Case 1
                        GUICtrlSetState($OptionTab, $GUI_SHOW)
                Case 2
                        GUICtrlSetState($HotkeyTab, $GUI_SHOW)
                Case 3
                        GUICtrlSetState($OutputTab, $GUI_SHOW)
        EndSwitch
EndIf
页: [1]
查看完整版本: @NumParams 宏如何使用?