On 4/28/22 7:27 AM, Bram Moolenaar wrote:
Ernie Rael wrote:
In vim9.txt there's
The key type can be string, number, bool or float. Other types result in an
error. A number can be given with and without the []:
Don't know if the following shows a bug in implementation or documentation.
The two dictionaries are not equal.
vim9script
var d1 = {[000123]: 'foo'}
echo d1
### output {'123': 'foo'}
var d2 = {000123: 'foo'}
echo d2
### output {'000123': 'foo'}
if d1 == d2
echo 'EQUAL'
else
echo 'NOT EQUAL'
endif
This is correct. The key eventually is always a string. If you use a
number and convert it to a string then leading zeros are dropped. If
you use a string with leading zeros, they are kept. This is in the help
below ":he E717".
E717 says
You can use a Number, it will be converted
...Note that the String '04' and the Number 04 are different,
since the Number will be converted to the String '4'.
According to that, in the example I started with, {000123: 'foo'}, the
number should be converted. But it is not being converted. Try
vim9script
echo {000123: 'foo'}
-ernie
--
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/c87b24ec-b0a7-accd-8c81-d5e2f7c6aff7%40raelity.com.