Edit: Just realised this was posted in the wrong forum! I guess the Mods will move it to either "AutoIt General Help and Support" or "AutoIt Technical Discussion".
Do you use type checking? Or do you choose not to type check?
I was trying to think of the simplest way to do a type check without typing arguments more than once and I came up with:
Func displayPerson($firstName, $lastName, $age)
; -- TYPE CHECK --
Local $typeCheck = ("" _
& IsString($firstName) _
& IsString($lastName) _
& IsNumber($age) _
)
If (StringInStr($typeCheck, "0")) Then MsgBox(16, "Type Error: displayPerson()", $typeCheck)
; -- FUNCTION --
MsgBox(0, "", $firstName & " " & $lastName & " (" & $age & ")")
EndFunc
The only catch with this method is that it produces a very simplistic error message. Even still, the fact that you only have to type out arguments once makes it a reasonable approach, in my opinion. The same logic can also be used for making function contracts (for example: $firstName mustn't be an empty string etc...).
What do you think? How do you go about such things?