返回列表 发帖

[原创] 用户自定义函数编写规范[试译]

本帖最后由 虫子樱桃 于 2013-1-18 17:07 编辑

翻译:虫子樱桃
原文链接:http://www.autoitscript.com/autoit3/udfs/UDF_Standards.htm


  此页内容对如何提交AutoIt自定义函数做了简单的介绍,如果代码依据以下标准进行提交并且包含以下两个文件,那么对我而言将是莫大的帮助。这两个文件一般而言,是这样的:
    Catagory.au3 (在#include语句中引用的文件名)
    Functionname.au3 (在帮助文件中使用的例子文件名称)
值得说明的是,我们只会收录有普遍易用性的用户自定义函数。但是如果您还是想让您的自定义函数被收录:-),那么:
  依照以下对于文件的说明.
  确保您的自定义函数在使用“-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6”参数运行AU3Check时,没有出现错误;
  确保您的自定义函数的编码是整齐的;
  您可以通过论坛消息或者邮件发送包含自定义函数和例子的zip文件给我(GaryFrost 或者 "Gary@ autoitscript.com")
  对于那些想查阅类库/模版文件的童鞋:创建一个模版程序
Thanks,
Gary

用户自定义函数编码标准

函数名称
        所有函数名称必须以一个下划线'_'开头
        函数名中的每个单词首字母必须大写(注:原文中未提明是首字母还是整个单词,根据使用习惯,这里使用首字母)。
        函数名称的首单词需使用一般的分类词如:“Date”, “String”, “Array”, “Network”,等开头以描述函数的功能。如果分类词较长,如“Windows”,那么可以使用该词的缩略词或常用的习惯缩写(例如,“Win”是Windows的习惯缩写,“Net”则是“NetWork”的缩写词)
        所有函数命名规范必须严格遵守AutoIt现有内置函数的命名规范

变量名称
        在美元符号($)后的字母应被用来指定函数中该变量在函数中被引用的数据类型。下面的列表列出的是不同字母前缀及其不同的含义。
        $a<其他字母> - 数组 (紧接着的这字母描述的含义,请参考下面的其他字母前缀说明)
        $b - 二进制数据库
        $h - 文件或窗口句柄
        $i - 整数
        $f - 布尔值(True或者False)
        $n - 浮点数
        $s - 字符串
        $v - 变量 (未知类型/变量类型数据)      
        余下部分的变量名称使用大写的单词来描述变量的作用。类似“$iC”的变量名称是不可被接受的。而"$aiWeekDayNames" 或者 "$iCounter" 这样的变量名将会更有意义。
        所有变量在第一次使用之前必须在UDF的开头使用local进行申明。“Dim”和“Global”关键字在UDF中使用是会引起歧义的,因此需要避免在UDF中使用这两个关键字。
        当函数中有该变量数据在被更新后需要返回时,所有变量名应该使用Byref关键字,通过函数参数进传递。
参数
       参数命名也必须使用与变量名一样的命名规则
       每个参数都必须检查参数的有效性并返回适当的错误代码
      如果参数被用做传递数据回调用脚本 (ByRef),那么函数的说明文档必须明确地写出该情况。

函数说明文档
    所有的函数必须在函数的顶部附上相关的函数说明文档。以下是函数说明文档的格式:
  1. ; #FUNCTION# ;===============================================================================

  2. ;

  3. ; Name...........: _DateDiff

  4. ; Description ...: Returns the difference between 2 dates, expressed in the type requested

  5. ; Syntax.........: _DateDiff($sType, $sStartDate, $sEndDate)

  6. ; Parameters ....: $sType - One of the following:

  7. ;                  |D = Difference in days between the given dates

  8. ;                  |M = Difference in months between the given dates

  9. ;                  |Y = Difference in years between the given dates

  10. ;                  |w = Difference in Weeks between the given dates

  11. ;                  |h = Difference in hours between the given dates

  12. ;                  |n = Difference in minutes between the given dates

  13. ;                  |s = Difference in seconds between the given dates

  14. ;                   $sStartDate  - Input Start date in the format "YYYY/MM/DD[ HH:MM:SS]"

  15. ;                   $sEndDate    - Input End date in the format "YYYY/MM/DD[ HH:MM:SS]"

  16. ; Return values .: Success - Difference between the 2 dates.

  17. ;                  Failure - Returns 0 and Sets @Error:

  18. ;                  |0 - No error.

  19. ;                  |1 - Invalid $sType

  20. ;                  |2 - Invalid $sStartDate

  21. ;                  |3 - Invalid $sEndDate

  22. ; Author ........: Jos van der Zande

  23. ; Modified.......:

  24. ; Remarks .......:

  25. ; Related .......: _DateAdd

  26. ; Link ..........;

  27. ; Example .......; Yes

  28. ;

  29. ; ;==========================================================================================

  30. Func _DateDiff($sType, $sStartDate, $sEndDate)

复制代码 高亮切换

.

函数帮助文件文档
   所有提交的UDF函数必须包含一个除UDF外的额外文件以便于收入AutoIt帮助文件中。
(例子:)

  1. #include <Date.au3>

  2.  

  3. ; Calculated the number of seconds since EPOCH (1970/01/01 00:00:00)

  4. $iDateCalc = _DateDiff( 's',"1970/01/01 00:00:00",_NowCalc())

  5. MsgBox( 4096, "", "Number of seconds since EPOCH: " & $iDateCalc )

  6.  

  7. ; Calculated the number of Hours this year

  8. $iDateCalc = _DateDiff( 'h',@YEAR & "/01/01 00:00:00",_NowCalc())

  9. MsgBox( 4096, "", "Number of Hours this year: " & $iDateCalc )

复制代码 高亮切换
1

评分人数

  • annybaby

学习多谢楼主
好好学习,天天向上。

TOP

挺好的文档,谢谢分享。

TOP

支持
规范的编程习惯对自己也有好处

TOP

代码风格看出一个人的性格
LOVE CODE

TOP

回复 1# 虫子樱桃


    谢谢楼主,学习一下

TOP

用户自定义函数编写规范
1

评分人数

  • afan

TOP

感谢分享!

TOP

返回列表