Jump to content

Maps + With/EndWith


Recommended Posts

Should I make a feature request to make With/EndWith compatible with maps?  Or does this not make any sense at all?

Func _rect_from_points(Const $a1, Const $a2, Const $b1, Const $b2)
    Local $mRect[]

    $mRect.Left = ($a1 < $b1) ? $a1 : $b1

    $mRect.Top = ($a2 < $b2) ? $a2 : $b2

    $mRect.Width = ($b1 > $a1) ? ($b1 - $mRect.Left) : ($a1 - $mRect.Left)

    $mRect.Height = ($b2 > $a2) ? ($b2 - $mRect.Top) : ($a2 - $mRect.Top)

    Return $mRect
EndFunc

compared to:

Func _rect_from_points(Const $a1, Const $a2, Const $b1, Const $b2)
    Local $mRect[]
    
    With $mRect
        .Left = ($a1 < $b1) ? $a1 : $b1

        .Top = ($a2 < $b2) ? $a2 : $b2

        .Width = ($b1 > $a1) ? ($b1 - .Left) : ($a1 - .Left)

        .Height = ($b2 > $a2) ? ($b2 - .Top) : ($a2 - .Top)
    EndWith

    Return $mRect

EndFunc

Going a little bit more into outer space.  How about a new feature that I have dubbed anonymous maps?

Func _rect_from_points(Const $a1, Const $a2, Const $b1, Const $b2)  
    With []
        .Left = ($a1 < $b1) ? $a1 : $b1

        .Top = ($a2 < $b2) ? $a2 : $b2

        .Width = ($b1 > $a1) ? ($b1 - .Left) : ($a1 - .Left)

        .Height = ($b2 > $a2) ? ($b2 - .Top) : ($a2 - .Top)
        
        Return . ; or Return [] ; or maybe Return .[] ??
    EndWith
EndFunc
Edited by jaberwacky
Link to comment
Share on other sites

any good reading on maps -vs- arrays?  I thought i had seen them addressed interchangeably. so for my education, what makes this different from a request for 'object notation for arrays'

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Link to comment
Share on other sites

any good reading on maps -vs- arrays?  I thought i had seen them addressed interchangeably. so for my education, what makes this different from a request for 'object notation for arrays'

Help file and AutoIt isn't object orientated and thus having notation such as "dot access" is misleading by design.

I was under the impression trac requests shouldn't be for beta versions. Could be wrong. Also from what I remember Jon was going to do away with "dot access" as it's misleading. There needs to be consistency in the design of AutoIt.

Edited by guinness

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 parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Dot access is not necessarily object orientation.  C has structs which has fields accessed by dots.  My request isn't for an object oriented feature because I'm aware that's on the list of things that will never happen.

Link to comment
Share on other sites

Also from what I remember Jon was going to do away with "dot access" as it's misleading.

That would mean no more maps and no more autoitobject.  That would also mean that I would stop using autoit.  I know, no big loss right?

Link to comment
Share on other sites

what makes this different from a request for 'object notation for arrays'

Because dot notation does not necessarily imply object notation.  An object is a self contained entity with both public and private members and methods.  Also objects exhibit inheritance.  My feature is strictly limited to maps which is probably syntactic sugar, but I think it's pretty neat still.

Link to comment
Share on other sites

I'm gobsmacked.  I sure hope Jon wouldn't get rid of such an important aspect of the language's syntax.

edit: now I'm probably going to stay up all night.

Edited by jaberwacky
Link to comment
Share on other sites

Wait, I didn't mean in general, just with maps only as we were talking about the map datatype. So basically $mMap.Example would only be accessible with $mMap["Example"]. But this is speculation, so wait to see what Jon decides.

Edited by guinness

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 parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...