Добрый день!
Прочитал в документации различия между локальными (Local) и глобальными (Global) переменными
и решил провести эксперимент, что будет если использовать локальную переменную там где не должна она использоваться.
Думал, что получу ошибку, посмотрю как она выглядит, но у меня все работает.
Обратите внимание, переменная $MMC локальная, а значит (по книжке ) должна работать в пределах конкретной функции либо в пределах основного тела программы.
В основном теле программы я задаю локальную переменную $MMC = 'compmgmt.msc' по логике она не должна работать в функции, но работает.
Объясните мне пожалуйста, в чем я не прав ?
Прочитал в документации различия между локальными (Local) и глобальными (Global) переменными
и решил провести эксперимент, что будет если использовать локальную переменную там где не должна она использоваться.
Думал, что получу ошибку, посмотрю как она выглядит, но у меня все работает.
Код:
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <GuiButton.au3>
Local $test
Local $Button_Comp
Local $MMC
$test = GUICreate("test",350,350,-1,-1,-1,-1)
$Button_Comp = GUICtrlCreateButton("Мой текст",40,100,100,30,-1,-1)
GUISetState(@SW_SHOW,$test)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button_Comp
$MMC = 'compmgmt.msc'
RunMMC()
EndSwitch
WEnd
Func RunMMC()
ShellExecute(@SystemDir & '\MMC.EXE', $MMC)
EndFunc
Обратите внимание, переменная $MMC локальная, а значит (по книжке ) должна работать в пределах конкретной функции либо в пределах основного тела программы.
В основном теле программы я задаю локальную переменную $MMC = 'compmgmt.msc' по логике она не должна работать в функции, но работает.
Объясните мне пожалуйста, в чем я не прав ?