找回密码
 加入
搜索
查看: 2323|回复: 8

[系统综合] 请教一下自定义函数的问题(小白,勿笑)

  [复制链接]
发表于 2012-5-14 23:14:14 | 显示全部楼层 |阅读模式
一直以来我写代码自定义函数都是func _exit()

到现在我还搞不懂_exit()括号后面的该怎么填或者怎么运用!

求代码解释一下好吗? func _exit()和func _exit($a) 给个代码例子! 谢谢了!
发表于 2012-5-14 23:22:33 | 显示全部楼层
这类问题可以看帮助的,很简单的,帮助里面有现成的代码
Example1()
Example2()

; example1
Func Example1()
        ; Sample script with three user-defined functions
        ; Notice the use of variables, ByRef, and Return

        Local $foo = 2
        Local $bar = 5
        MsgBox(4096,"今天是 " & today(), "$foo 等于:" & $foo)
        swap($foo, $bar)
        MsgBox(4096,"变量 $foo 和 $bar 交换后", "现在 $foo 的值是:" & $foo)
        MsgBox(4096,"最后", "3 和 4 中较大的数是:" & max(3,4))
EndFunc   ;==>Example1

Func swap(ByRef $a, ByRef $b)  ;交换两个变量的内容
        Local $t
        $t = $a
        $a = $b
        $b = $t
EndFunc   ;==>swap

Func today()  ;以 mm/dd/yyyy 的形式返回当前日期
        Return (@MON & "/" & @MDAY & "/" & @YEAR)
EndFunc   ;==>today

Func max($x, $y)  ;返回两个数中的较大值
        If $x > $y Then
                Return $x
        Else
                Return $y
        EndIf
EndFunc   ;==>max

;End of sample script 1

; example2
Func Example2()
        ; Sample scriptusing @NumParams macro
        Test_Numparams(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
EndFunc   ;==>Example2

Func Test_Numparams($v1 = 0, $v2 = 0, $v3 = 0, $v4 = 0, $v5 = 0, $v6 = 0, $v7 = 0, $v8 = 0, $v9 = 0, _
                $v10 = 0, $v11 = 0, $v12 = 0, $v13 = 0, $v14 = 0, $v15 = 0, $v16 = 0, $v17 = 0, $v18 = 0, $v19 = 0)
        #forceref $v1, $v2, $v3, $v4, $v5, $v6, $v7, $v8, $v9, $v10, $v11, $v12, $v13, $v14, $v15, $v16, $v17, $v18, $v19
        Local $val
        For $i = 1 To @NumParams
                $val &= Eval("v" & $i) & " "
        Next
        MsgBox(4096, "@NumParams example", "@NumParams =" & @NumParams & @CRLF & @CRLF & $val)
EndFunc   ;==>Test_Numparams

;End of sample script 2
发表于 2012-5-14 23:35:29 | 显示全部楼层
需要给函数传参数 就写上参数    不需要传就不写

传入参数 分为 传值 和 传引用 两类 (ByRef 是传递引用的关键字)

具体 自己去看 Let's AutoIt
发表于 2012-5-15 09:03:47 | 显示全部楼层
3楼正解,看下Let's AutoIT,内有详细说明和例子,我发的帖子里面有
发表于 2012-5-15 09:46:03 | 显示全部楼层
本帖最后由 netegg 于 2012-5-15 09:47 编辑

[au3]_exit()
Func _exit()
  $i = 0
  While 1
    __exit($i)
    $i += 1
  WEnd
EndFunc   ;==>_exit
Func __exit($i)
  ConsoleWrite($i & @CR)
  If $i = 0 Then
    Return
  Else
    Exit
  EndIf
EndFunc   ;==>__exit
[/au3]
发表于 2012-5-16 12:27:20 | 显示全部楼层
小弟这么认为:括号里的是参数,可有可无,可一个或多个
有参数的方便调整    没参数的比较固定
比如:
For $i = 0 To 24
        a($i)
        b()
        next
Func a($x)
MsgBox(0,"这是有参数的(方便调整)",$x)
endfunc
Func b()
MsgBox(0,"这是没参数的",0)
endfunc
发表于 2012-5-17 12:30:33 | 显示全部楼层
回复 6# 魔导


也可以给参数加上默认值


For $i = 0 To 24
        a($i)
        next
Func a($x=9)
if $x = 9 then
MsgBox(0,"这是有参数的(方便调整)",$x)
else
MsgBox(0,"这是没参数的",0)
endif
endfunc
发表于 2012-5-17 17:30:27 | 显示全部楼层
回复  魔导


也可以给参数加上默认值
xayle 发表于 2012-5-17 12:30



   还可以有默认值啊, 谢谢指教
发表于 2012-5-17 17:41:40 | 显示全部楼层
参数么,可以和函数交互的。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-14 13:07 , Processed in 0.075128 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表