LINUX.ORG.RU

Как сравнить таблицы в vimscript?

 , ,


0

1
let o1 = {}
let o2 = o1
let o3 = {}
let o4 = {}
let o5 = {"a": 1}
let o6 = {"a": 1}

echo o1 == o2 
echo o3 == o4
echo o5 == o6

Все сравнения дают одно и тоже. Подходящих операторов не нашел. Или в вимскрипте таблицы являются примитивами штоле?

И еще, заодно, спрошу. Есть ли возможность получить функцию по ссылке? Может делегаты, или что-нибудь такое?

UPD По второму вроде нашел, но не пойму, как связывать с таблицами:


fu Foo()
  echo self.a
endfu

let o1 = {"a": 1}
let o2 = {"a": 2}
let o1.foo = function("Foo")
let o2.foo = function("Foo")

call o1.foo()
call o2.foo()

ругается на self



Последнее исправление: linearisation (всего исправлений: 3)

Все сравнения дают одно и тоже. Подходящих операторов не нашел. Или в вимскрипте таблицы являются примитивами штоле?

:help dict-identity:

Two Dictionaries compare equal if all the key-value pairs compare equal.  For more info see |list-identity|.

UPD По второму вроде нашел, но не пойму, как связывать с таблицами:

:help Dictionary-function, надо так:

fu Foo() dict
xaizek ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.