zsh-workers
 help / color / mirror / code / Atom feed
From: Matt Armstrong <matt@lickey.com>
To: zsh-workers@sunsite.dk
Subject: Re: Is there an idiom for converting an array to an associative array?
Date: Sat, 17 Jan 2004 18:59:43 -0800	[thread overview]
Message-ID: <87oet2neqo.fsf@naz.lickey.com> (raw)
In-Reply-To: <1040116042310.ZM28857@candle.brasslantern.com> (Bart Schaefer's message of "Fri, 16 Jan 2004 04:23:10 +0000")

Bart Schaefer <schaefer@brasslantern.com> writes:

> On Jan 15,  9:05am, Matt Armstrong wrote:
> }
> } I'm looking for an idiom that will convert the array (a b c) into
> } (a "" b "" c "") so I can assign it easily to an associative array.
>
> As it happens ...
>
>     typeset "assoc[${^array[@]}]=''"
>
> should do that particular thing quite effectively, provided that none
> of the values of $array is * or @.

Thanks, I'll give it a whirl, and then study it for a couple of hours
to figure out how it works.  :-)


> } Right now I've got ugliness like this:
> } 
> }     array=(a b c)
> }     set -A assoc
>
> That should be "typeset -A assoc".  "set -A" means something entirely
> different.

I jumped to "To create an empty array (including associative arrays)"
in the text below:

       Associative arrays must be declared before assignment, by using:

              typeset -A name

       When name refers to an associative array, the list in an assignment  is
       interpreted as alternating keys and values:

              set -A name key value ...
              name=(key value ...)

       Every  key  must  have a value in this case.  Note that this assigns to
       the entire array, deleting any elements that do not appear in the list.

       To create an empty array (including associative arrays), use one of:

              set -A name
              name=()

This is from Debian Linux's packaging of zsh 4.0.8


-- 
matt


  reply	other threads:[~2004-01-18  2:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-15 17:05 Matt Armstrong
2004-01-16  4:23 ` Bart Schaefer
2004-01-18  2:59   ` Matt Armstrong [this message]
2004-01-18 18:50     ` Bart Schaefer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87oet2neqo.fsf@naz.lickey.com \
    --to=matt@lickey.com \
    --cc=zsh-workers@sunsite.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).