Конструкция для каждого также допустима для массивов. например,
String[] fruits = new String[] { "Orange", "Apple", "Pear", "Strawberry" };
for (String fruit : fruits) {
// fruit is an element of the `fruits` array.
}
, который чрезвычайно эквивалентен из [1 110]
for (int i = 0; i < fruits.length; i++) {
String fruit = fruits[i];
// fruit is an element of the `fruits` array.
}
Так, полная сводка:
[nsayer] следующее является более длинной формой того, что происходит:
for(Iterator
i = someList.iterator(); i.hasNext(); ) { String item = i.next(); System.out.println(item); } Примечание это, если необходимо использовать i.remove (); в Вашем цикле или доступе фактический итератор в некотором роде, Вы не можете использовать для (:) идиома, так как фактический Итератор просто выведен.
Это подразумевается ответом nsayer, но стоит отметить что OP's (..) синтаксис будет работать, когда "someList" будет чем-либо, что реализует java.lang. Повторяемый - это не должен быть список или некоторый набор от java.util. Даже Ваши собственные типы, поэтому, могут использоваться с этим синтаксисом.
Вы правы, вы не можете сделать это только с помощью cscope.
Я использую cscope + ctags с vim каждый день как для малых, так и для больших проектов.
Я обнаружил, что наиболее продуктивным способом использования этих инструментов является их использование как из vim, так и с плагином cscope_maps.vim.
Это может вам не помочь, но мне это помогло в прошлом, проверьте этот сайт для получения информации об их совместном использовании. Я предупреждаю вас, что если вы используете плагин cscope_maps.vim , вы, вероятно, захотите отредактировать его и закомментировать параметр "установить cscopetag" .