SyDr
Сидра
- Сообщения
- 651
- Репутация
- 158
Хотелось бы обсудить различные стили программирования в AutoIt
http://autoit-script.ru/index.php/topic,158.0.html
Стараюсь придерживаться этих правил при придумывании имён. С той лишь разницей, что для массивов часто не прописываю "тип", а для целых и вещественных чисел использую префиксы $n и $r соответственно.
А каких ещё правил стараетесь придерживаться вы?
Впрочем, вот ещё вопрос:
Код ZInclude.au3:
Т. е. во включённом файле есть функция, использующая переменные из основного скрипта. Как быть в такой ситуации?
1) Тянуть через все вызываемые функции в параметрах? (Как в примере)
2) Просто сразу использовать глобальную переменную?
Код ZInclude.au3 для этого случая:
В этом случае каждый раз при запуске будет вызываться Warning:
3) Писать всё в одном файле и использовать глобальные переменные
В этом случае отладка скрипта превращается в настоящий ад.
А как пишете/поступили бы вы?
http://autoit-script.ru/index.php/topic,158.0.html
Стараюсь придерживаться этих правил при придумывании имён. С той лишь разницей, что для массивов часто не прописываю "тип", а для целых и вещественных чисел использую префиксы $n и $r соответственно.
А каких ещё правил стараетесь придерживаться вы?
Впрочем, вот ещё вопрос:
Код:
#include "ZInclude.au3"
Global $sTest = "Bzzzzz..."
Global $iOptions = 16 + 4 + 1
$sTest = _ZInclude($sTest, $iOptions)
MsgBox(4096, Default, $sTest)
Код ZInclude.au3:
Код:
Func _ZInclude($sTest, $iOptions)
Return StringTrimLeft($sTest, 5) & __Hidden($sTest, $iOptions)
EndFunc
Func __Hidden($sTest, $iOptions)
Return $sTest & $iOptions
EndFunc
Т. е. во включённом файле есть функция, использующая переменные из основного скрипта. Как быть в такой ситуации?
1) Тянуть через все вызываемые функции в параметрах? (Как в примере)
2) Просто сразу использовать глобальную переменную?
Код ZInclude.au3 для этого случая:
Код:
Func _ZInclude($sTest, $iOptions)
Return StringTrimLeft($sTest, 5) & __Hidden($sTest)
EndFunc
Func __Hidden($sTest)
Return $sTest & $iOptions
EndFunc
В этом случае каждый раз при запуске будет вызываться Warning:
Код:
D:\Projects\AutoIt\Translate\3.3.6.1.RUS.NEWSYSTEM\docs\autoit\russian\Build\ZInclude.au3(6,27) : WARNING: $iOptions: possibly used before declaration.
Return $sTest & $iOptions
~~~~~~~~~~~~~~~~~~~~~~~~~^
D:\Projects\AutoIt\Translate\3.3.6.1.RUS.NEWSYSTEM\docs\autoit\russian\Build\ZMain.au3 - 0 error(s), 1 warning(s)
->10:43:08 AU3Check ended.rc:1
3) Писать всё в одном файле и использовать глобальные переменные
Код:
Global $sTest = "Bzzzzz..."
Global $iOptions = 16 + 4 + 1
$sTest = _ZInclude($sTest, $iOptions)
MsgBox(4096, Default, $sTest)
Func _ZInclude($sTest, $iOptions)
Return StringTrimLeft($sTest, 5) & __Hidden($sTest)
EndFunc
Func __Hidden($sTest)
Return $sTest & $iOptions
EndFunc
В этом случае отладка скрипта превращается в настоящий ад.
А как пишете/поступили бы вы?