变量的数据类型

变量的数据类型

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
原文地址:https://www.cnblogs.com/yhy-blog/p/14515399.html