String a = new String("foo");
String b = new String("foo");
System.out.println(a == b); // prints false
System.out.println(a.equals(b)); // prints true
Убедитесь, что вы понимаете, почему. Это потому, что сравнение ==
сравнивает только ссылки; equals()
метод сопоставляет содержимое по символу.
Когда вы вызываете new для a
и b
, каждый получает новую ссылку, указывающую на "foo"
в таблице строк. Ссылки разные, но контент один и тот же.
Можно следовать инструкциям от веб-сервис JSLint + интеграция VIM или сделать то, что я сделал:
Загрузка http://jslint.webvm.net/mylintrun.js и http://www.jslint.com/fulljslint.js и помещенный их в каталог по Вашему выбору.
Затем добавляют следующую строку к началу mylintrun.js:
var filename= arguments[0];
и изменение длятся строку кода в mylintrun.js ("печать (...)") к:
print ( filename + ":" + (obj["line"] + 1) + ":" + (obj["character"] + 1) + ":" + obj["reason"] );
Это делает в mylintrun.js, производит ошибочный список, который может использоваться с VIM quickfix окно (: copen).
Теперь устанавливает следующее в VIM:
set makeprg=cat\ %\ \\\|\ /my/path/to/js\ /my/path/to/mylintrun.js\ %
set errorformat=%f:%l:%c:%m
, где необходимо измениться /my/path/to/js на путь к SpiderMonkey и /my/path/to/mylintrun.js к пути, куда Вы помещаете файлы JS.
Теперь, можно использовать : сделайте в VIM и используйте окно quickfix (: он quickfix-окно) для спрыгивания с ошибки к ошибке.
Намного лучше направлять результаты через Lynx, чтобы справиться с неудачным выбором JSLint HTML для формата вывода. У меня есть запись в блоге о том, как это сделать:
http://www.fleegix.org/articles/2008-09-06-jslint-in-vim-through-lynx
Другой вариант - jslint.vim от Джесси Халлета. Он доступен на GitHub и работает с окном QuickFix Vim или без него. Хороший плагин!