变量的数据类型
au3是弱类型的语言,他对类型不敏感,把同一个变量,放在了不同类型的位置,他会自动转化数据类型。
Global $iNum = 1 Global $sNum = '1' MsgBox(0, '标题', $iNum + $sNum) ;2 (AU3理解为数值相加) MsgBox(0, '标题', $iNum & $sNum) ;11 (AU3理解为字符串拼接)
数据类型的标识;用i作为标识,让我们方便记忆这个变量是一个整型变量Global $iAge = 30
;用s作为标识,记录一个字符串类型 Global $sName = '周润发' ;用b作为标识,记录一个布尔,逻辑类型 Global $bFlag = True ;用Bin作为标识,记录一个二进制数据 Global $BinData = '0xFFEFAB' ;用p作为标识,记录一个指针类型 Global $pBaseAddress = Null ;用h作为标识,记录一个句柄类型 Global $hWindow = 0 ;用o作为标识,记录一个对象类型的 Global $oShell = Null
;用T作为标识,记录一个结构体的
Global $MyStruct = 'INT age;WCHAR Name[260];'
Global $tMyStruct = DllStructCreate($MyStruct)
;用a作为标识,记录一个数组类型的
Global $aList[] =['张三','李四','王五','马六']
根据不同类型的变量,使用不同的运算符
i-整型 : + - * / += -= *= /= ^ > >= < <=
Global $_iNum1 = 5 Global $_iNum2 = 7 Global $_iTotal = 2 $_iTotal = $_iNum1 + $_iNum2 ;$_iNum1 加 $_iNum2 赋值给 $_iTotal $_iTotal = $_iNum1 - $_iNum2 ;$_iNum1 减 $_iNum2 赋值给 $_iTotal $_iTotal = $_iNum1 * $_iNum2 ;$_iNum1 乘 $_iNum2 赋值给 $_iTotal $_iTotal = $_iNum1 / $_iNum2 ;$_iNum1 除 $_iNum2 赋值给 $_iTotal $_iTotal += $_iNum1 ;自身加$_iNum1 赋值给$_iTotal $_iTotal -= $_iNum2 ;自身减$_iNum2 赋值给$_iTotal $_iTotal /= $_iNum2 ;自身除$_iNum2 赋值给$_iTotal $_iTotal *= $_iNum2 ;自身乘$_iNum2 赋值给$_iTotal $_iTotal = $_iNum2 ^ 3 ;这代表$_iNum2的3次幂
s-字符串: & &= == =
;& 拼接 ;&= 连续拼接 ;== 字符串判断用 ;= 整形数值用 Global $sName = '周润发' Global $sTmp = '刘德华' Global $sDoing = '正在拍英雄本色电影' $sName &='和' & $sTmp & $sDoing ;赋值等价于 $sName = $sName & $sTmp ConsoleWrite( $sName & @CRLF)
b-布尔 AND OR NOT
位运算 BitAnd BitOr BitXor Bitshift
通用 <> =
结构体实例
;用T开头的变量记录一个结构体 Global $MyStruct = 'INT age;WCHAR Name[260];' Global $tMyStruct = DllStructCreate($MyStruct) $tMyStruct.age = 25 $tMyStruct.Name = '小衣' MsgBox(0,'年龄',$tMyStruct.age) MsgBox(0,'名字',$tMyStruct.Name)
课堂使用命令注释
;~ 使用宏有: ;~ ConsoleWrite ( "数据" ) 写入数据到 STDOUT 流.一些文本编辑器可以读取这个流作为其它程序可接受的数据. ;~ DllStructCreate 创建一个 C/C++ 样式的数据结构供 DllCall 使用. ;~ StringSplit ( "字符串", "分隔符" [, 标志] ) 以指定分隔符把字符串拆分成若干子字符串. ;~ UBound(数组) ;UBound ( 数组 [, 维度] ) ;~ FileOpen 这个命令成功时。他返回的Error应该是0 ;~ FileWrite ( "文件句柄/文件名", "文本/数据" ) 向此前已打开的文本/数据文件尾追加数据. ;~ FileClose ( 文件句柄 ) 关闭此前已打开的文本文件. ;~ @TempDir 临时 文件夹 所在路径 ;~ @error 返回值默认为0