Re: Assignment of associative arrays through braces
On Tue, Aug 21, 2018 at 2:20 AM Chet Ramey wrote: > > On 8/19/18 10:27 AM, konsolebox wrote: > > >> This proposal simply requests an intuitively equivalent simple > >> assignment syntax for associative arrays just like a='...' and > >> a=(...), with same behavior for scoping. > >> > >> Maybe we can add another option like -G to have similar effect but > >> that's a little different already. Just allowing a={} would make it > >> simpler for every scripter. > > > > By the way, is this rejected? > > No, it will not make it into bash-5.0 so I haven't looked at it further. > It is on the list for a future release. Ok, sounds good. -- konsolebox
Re: Assignment of associative arrays through braces
On 8/19/18 10:27 AM, konsolebox wrote: >> This proposal simply requests an intuitively equivalent simple >> assignment syntax for associative arrays just like a='...' and >> a=(...), with same behavior for scoping. >> >> Maybe we can add another option like -G to have similar effect but >> that's a little different already. Just allowing a={} would make it >> simpler for every scripter. > > By the way, is this rejected? No, it will not make it into bash-5.0 so I haven't looked at it further. It is on the list for a future release. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRUc...@case.eduhttp://tiswww.cwru.edu/~chet/
Re: Assignment of associative arrays through braces
On Tue, Jul 31, 2018 at 10:31 PM, Chet Ramey wrote: > On 7/27/18 7:13 PM, konsolebox wrote: >> Hi Chet, >> >> I wonder if you can allow bash to have another syntax to allow simpler >> declaration and/or definition of associative arrays. The changes >> needed to have it done seem simple enough, and the only conflict it >> makes is a scalar `var={...` assignment, which in my opinion is better >> quoted to make it more readable and less questionable from other >> syntaxes like brace expansion. I believe most people intuitively >> quotes it, and assignments that start with `{` is fairly rare. > > So it's syntactic sugar for `declare -gA a; a=( ... )'? That surely is one of the main goals, but it's not exact. `declare -gA a; a=(...)` would always affect the main global scope. Example: $ g() { declare -gA a=([x]=y); }; f() { local -A a=(); g; declare -p a; }; declare -A a=([a]=b); f; declare -p a declare -A a=() declare -A a=([x]="y" ) But as shown in my earlier example, a={...} would only affect the nearest scope which was local a={}. This proposal simply requests an intuitively equivalent simple assignment syntax for associative arrays just like a='...' and a=(...), with same behavior for scoping. Maybe we can add another option like -G to have similar effect but that's a little different already. Just allowing a={} would make it simpler for every scripter. -- konsolebox
Re: Assignment of associative arrays through braces
On 7/27/18 7:13 PM, konsolebox wrote: > Hi Chet, > > I wonder if you can allow bash to have another syntax to allow simpler > declaration and/or definition of associative arrays. The changes > needed to have it done seem simple enough, and the only conflict it > makes is a scalar `var={...` assignment, which in my opinion is better > quoted to make it more readable and less questionable from other > syntaxes like brace expansion. I believe most people intuitively > quotes it, and assignments that start with `{` is fairly rare. So it's syntactic sugar for `declare -gA a; a=( ... )'? -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRUc...@case.eduhttp://tiswww.cwru.edu/~chet/