On 4/28/22 8:52 AM, Bram Moolenaar wrote:
Ernie Rael wrote:
In vim9.txt there's
The key type can be string, number, bool or float. Other types res> ult in an
error. A number can be given with and without the []:
Don't know if the following shows a bug in implementation or documentati> on.
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'}
That is not a number but a string. As you noticed before, using [expr]
does use 000123 as a number, then converts it to a string.
Using the {key: value} syntax the "key" part is always a string.
Using the {key: value} syntax the "key" part is always a string.
Isn't this doc in vim9.txt wrong (or at least highly misleading)
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 []: >
var dict = {123: 'without', [456]: 'with'}
echo dict
{'456': 'with', '123': 'without'}
It is not the same "with and without"
At E717, where it is talking about "Dictionary creation", it says
"Number will be converted to String". But that might be a legacy script
thing and so out of my experience.
-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/606bdea9-c61c-a21d-05a4-1fedf4e02fc4%40raelity.com.