Вы можете использовать объект ссылочного объекта &Animal
для заимствования элементов и сохранения этих объектов-признаков в Vec
. Затем вы можете перечислить его и использовать интерфейс признака.
Изменение общего типа Vec
путем добавления &
перед признаком будет работать:
fn main() {
let dog: Dog = Dog;
let cat: Cat = Cat;
let mut v: Vec<&Animal> = Vec::new();
// ~~~~~~~
v.push(&dog);
v.push(&cat);
for animal in v.iter() {
println!("{}", animal.make_sound());
}
// Ownership is still bound to the original variable.
println!("{}", cat.make_sound());
}
Это здорово, если вы можете захотеть, чтобы исходная переменная сохраняла право собственности и повторно использовала ее позже.
Имейте ввиду, что вы не можете передать права собственности на dog
или cat
, потому что Vec
заимствовал эти конкретные экземпляры в той же области.
Знакомство с новой областью может помочь справиться с этой конкретной ситуацией:
fn main() {
let dog: Dog = Dog;
let cat: Cat = Cat;
{
let mut v: Vec<&Animal> = Vec::new();
v.push(&dog);
v.push(&cat);
for animal in v.iter() {
println!("{}", animal.make_sound());
}
}
let pete_dog: Dog = dog;
println!("{}", pete_dog.make_sound());
}
Пойдите для Подверсия .
(источник: pushok.com )
(источник: pushok.com )
Также столкнулся с этим Microsoft Forum Discussion ..
В то время как не абсолютно свободный, По необходимости имеет бесплатные 2 пользовательских/5 лицензии рабочей станции и в настоящее время мое предпочтительное управление исходным кодом. Плагин P4 SCC интегрируется беспрепятственно в VS (автоконтроль на редактировании, и т.д.)
Я использовал и Сервер Основы Подверсии и Команды экстенсивно, и даже при том, что TFS очень тесно интегрируется в IDE, я рекомендовал бы Подверсию. TFS испытывает недостаток в нескольких функциях, которые Подверсия имеет, который я действительно пропускаю - крупнейшее существо способность совместно использовать код через несколько проектов с помощью svn:externals свойства. TFS не имеет этого, и это вынудило нас структурировать наше исходное дерево несколько искусственным способом, чтобы не должным быть скопировать ГБ материала каждый раз, когда мы создаем ответвление. Я слышу, что интеграция Подверсии в IDE намного лучше теперь чем тогда, когда я в последний раз использовал его. Я также упомянул бы, что, если Вы должны работать отслеживание объекта и другие функции ALM как это право в IDE - затем, TFS может все еще быть лучшим способом пойти для Вас - все это зависит от Ваших конкретных потребностей.
Много систем управления исходным кодом предлагает VS интеграцию IDE. Я в настоящее время использую (на самом деле, быть вызванным, почти под прицелом для использования) ClearCase. Так же, как я не желающий и терпеть не могу его, это делает предложение VS интеграция IDE, а также ветвление.
Опции, которые были упомянуты, являются всей пользой; StarTeam является другой опцией с интеграцией (хотя не на 2008 все же).
Alienbrain также имеет интеграцию Visual Studio. Действительно не рекомендовал бы это для кода, хотя (это более разработано для художественных активов).
Мой голос для Подверсии, потому что это делает то, в чем Вы нуждаетесь и ничто больше.
, Кроме того, если Вы немного более предприимчивы и требуете более сложной переходящей стратегии, можно проверить мерзавца.
Если Вы перемещаете SourceSafe, то Хранилище является действительно гладкой процедурой обновления. Это разработано как замена SourceSafe, таким образом, все вещи, которые Вы раньше использовали в SourceSafe (включая интеграцию IDE) там (наряду с некоторым новым материалом).
Это также имеет инструмент импорта, который введет Ваши данные SourceSafe наряду с историей версий. Это не открытый исходный код, но это довольно дешево для системы управления версиями.
В то время как Подверсия получает довольно большое следующее, мы используем AccuRev. Это просто в использовании, имеет хороших графических редакторов, а также Visual Studio / интеграция Файлового менеджера. Это не свободно все же.
Хранилище SourceGear является в значительной степени заменой для Визуального Безопасного Источника. Вы получаете тот же набор функций, и очень намного больше. Дополнительно это стабильно и масштабируется хорошо. Но это очень дорого.
Подверсия является большой для небольших магазинов, потому что это свободно. Клиент TortoiseSVN интегрируется беспрепятственно в оболочку Windows Explorer. Но для интеграции Visual Studio я продвинул бы плагин VisualSVN. Это не свободно, но это очень доступно.
Подверсия также дает Вам преимущество интеграции со многими другими инструментами управления программным обеспечением из поля.
Подверсия. Поскольку, чувак, это похоже на Машину времени.
Подверсия попытки: http://subversion.tigris.org/ и с черепахой SVN http://tortoisesvn.tigris.org/ для оболочки intergration и с одним из анка SVN http://ankhsvn.open.collab.net/ или Визуального SVN http://www.visualsvn.com/ для студии intergration.
По необходимости (p4) также предлагает интеграцию Visual Studio и является очень способной системой управления исходным кодом (хотя не открытый исходный код).
Хранилище SourceGear... хорошая интеграция с VS и очень хорошим продуктом... хранит, это - данные по SQL Server, делание его очень легкий скопировать / мигрирует на другие машины/серверы.
Безусловно лучший инструмент управления исходным кодом я использовал.
Я знаю, что Вы упомянули открытый исходный код, и это идет в дальнем конце спектра к этому, но мне действительно нравится сервер Основы Команды.
Это не просто система управления исходным кодом, но и инструмент управления жизненным циклом целого приложения. Это дает Вам настолько больше, чем просто управление исходным кодом и если Вы не работаете в очень малочисленной команде, я предположил бы, что это обеспечивает значение вне, он - цена.
Перейти на Plastic SCM . Он очень прост в использовании, он один из самых сильных в использовании ветвей и один из немногих, позволяющих по-настоящему распределенную разработку с помощью VStudio. Отличная поддержка рефакторинга (отслеживание перемещения, отслеживание слияния и т. Д.), Попробуйте переместить файлы из VStudio и т. Д., И это бесплатно для открытого исходного кода.