...

ументы для черта, я вижу обаSendа также

impl<T> Send for LinkedList<T> 
where
    T: Send, 

В чем разница между этими двумя синтаксисами и как это повлияет на мой код, если я буду писать

impl<T: Send> Send for LinkedList<T>

 декларации для моей собственной черты?implГраницы черты, определенные внутри

Ответы на вопрос(1)

Решение Вопроса

  объявленных inline. Встроенный стиль существовал доwhere оговорка;where пункт былwhereвведено в RFC 135Добавлять:

 пункты, которые предоставляют более выразительные средства определения границ параметров черты. [...] Существующая нотация границ останется синтаксическим сахаром дляwhere статьи.whereВот список ограничений с текущим синтаксисом границ, которые преодолеваются с помощью синтаксиса where:

Он не может выражать границы ни на чем, кроме параметров типа.

 Поэтому, если у вас есть функция, общая в, ты можешь написатьT заявить, чтоT:MyTrait должен реализоватьT, но ты не можешь писатьMyTrait или жеOption<T> : MyTrait, Эти формы реже требуются, но все же важны.(int, T) : MyTraitОн плохо работает со связанными типами.

 Это потому, что нет места для указания значения связанного типа. Другие языки используют для этого предложения where (или что-то аналогичное).Это просто трудно читать.

 Опыт показывает, что с ростом числа границ текущий синтаксис становится трудным для чтения и форматирования.С тех пор вы также можете использовать

более высокие оценки черт) в (for <'a> ... пункт:whereЕсли ваши потребности могут быть удовлетворены встроенными границами черт, это не повлияет на ваш код. Если вам нужны дополнительные силы, которые только

fn foo<T, U>()
where
    // higher-ranked trait bounds
    for<'a> T: SomethingElse<'a>,
    // Bound not directly on the generic type
    i32: From<U>,
    T: Iterator,
    // Bound on an associated type
    T::Item: Clone,
    // Just really long
    U: ReallyLong + AnotherReallyLong + WowReallyLong,
{}

 позволяет, то вам нужно использоватьwhereМой личный стильwhere.

всегда использовать форма. Имея единую форму, которая также легчеwhere при добавлении новых границ стоит дополнительная строка кода для меня.git diffTBH - это один из тех случаев, когда я скучаю по Zen of Python :) Кроме того, исторически были небольшие расхождения, я помню,

 Shepmaster17 окт. 2017 г., 17:28
 работал только встроенный. Я помню, потому что я также предпочитаю один стиль (используя?Sized) но это не сработалоwhere...?SizedРазница между <T: черта> и где T:
 Matthieu M.17 окт. 2017 г., 17:26
 может быть использован только в?Sized оговорка на некоторое время.where@MatthieuM. это было наоборот -

Ваш ответ на вопрос