Hi Tony,

On Sun, May 24, 2020 at 5:44 PM Tony Mechelynck <
antoine.mechely...@gmail.com> wrote:

> On Mon, May 25, 2020 at 2:15 AM Yegappan Lakshmanan <yegapp...@gmail.com>
> wrote:
> >
> > Hi,
> >
> > To clear the contents of a list named "abc", we can use "unlet abc[:]".
> > It looks like a similar method for clearing the contents of a dictionary
> > is not available. We can set the dictionary variable to another empty
> > dictionary (but it is not the same). Am I missing something?
> >
> > Thanks,
> > Yegappan
>
> You mean, after :let xyz = {} the old keys and values still exist? I
> wouldn't have expected that.
>
>
Consider the following function for clearing a List:

func ClearList(l)
    unlet a:l[:]
endfunc

let l = [1, 2, 3, 4]
call ClearList(l)
echo "List = ->" .. string(l) .. "<-"

After calling the ClearList() function, all the elements in the List
are cleared.

A similar function for clearing a Dict:

func ClearDict(d)
    for k in keys(a:d)
             unlet a:d[k]
    endfor
endfunc

let d = {'a' : 10, 'b' : 20}
call ClearDict(d)
echo "Dict = ->" .. string(d) .. "<-"

In this function, we have to iterate through all the keys and unlet each
item. The Dict cannot be cleared by simply using unlet or by assigning
the argument to an empty dictionary.

Regards,
Yegappan

Oh, and what about
>       for k in keys(xyz) | exe 'unlet xyz.' .. k | endfor
> ?
>
>
>

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/CAAW7x7%3DVJO5C%2BgWayk97_jRXZD%3D3-h3FbmW7svUcrZF-rd1w0w%40mail.gmail.com.

Raspunde prin e-mail lui