DatMCEyeBall Posted December 18, 2013 Share Posted December 18, 2013 (edited) I keep reading the topic title as "In Defence of Magic" instead of "In Defence of Magic Numbers". Edited December 18, 2013 by DatMCEyeBall "Just be fred, all we gotta do, just be fred." -Vocaliod "That is a Hadouken. A KAMEHAMEHA would have taken him 13 days and 54 episodes to form." - Roden Hoxha @tabhooked Clock made of cursors ♣ Desktop Widgets ♣ Water Simulation Link to comment Share on other sites More sharing options...
Richard Robertson Posted December 20, 2013 Share Posted December 20, 2013 Vaguely related: The other day; I imagined a pseudo type syntax, similar to the following, which could be used to force a Local copy of a global variable passed as a parameter. It offers no additional, or practical, advantage other than being easy to follow (IMO). ; Pseudo Code Global Const $gvVar = True _Anything($gvVar) Func _Anything(Not ByRef $gvVar) $gvVar = False EndFunc ; Although I think 'Not ByRef' is perhaps a bad combination / expression for different reasons. It was merely a passing thought. Something I think would be very useful would be to have optional ByRef parameters (for passing around large amounts of data - or not), but perhaps there's enough going on right now. Maybe sometime in the future. All variables are passed 'not byref' by default. Normally byref and byval parameters are distinguished by function overloads but AutoIt doesn't support that right now. You can always have _AnythingV and _AnythingR where the V and R are for value and reference respectively. czardas 1 Link to comment Share on other sites More sharing options...
czardas Posted December 20, 2013 Author Share Posted December 20, 2013 Thanks, I was a missing some information. It just goes to show how seldom I use global variables, otherwise I would have most likely discovered this by trial and error. operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
guinness Posted December 22, 2013 Share Posted December 22, 2013 >PreExpand can take care of constant and enumeration variables in your script and includes. So now there is no excuse to create unreadable code for the sake of optimisation. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
czardas Posted December 22, 2013 Author Share Posted December 22, 2013 So now there is no excuse to create unreadable code for the sake of optimisation. I appreciate all the effort made by MVPs to name all constants. The fact I find using them laborious is just too bad. I think Microsoft's naming policy is simply inane. I like working with numbers. I find it easier to track bugs and understand the inner workings. I don't really like to have things hidden behind a veil. It's my personal preferance. I have the option to use global constants if I wish to and quite often I do. operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now