Если тут from - это метод трейта From, то разница прежде всего в строго определенной сигнатуре from - один аргумент, возвращаемое значение Self. А так метод-конструктор может называться как угодно, хоть new, хоть create_new_struct
new создаёт абсолютно новый объект, а from делает объект из чего-то другого
значит, если у меня есть структура с приватными и публичными полями, и их всех надо инициализировать, то надо использовать Foo::new()?
Скорее всего, да. Но возможно нужен From, а может что-то другое. Без конкретики это звучит как примерно "а какую строчку кода мне сейчас надо дописать?".
Это просто соглашение. В других языках есть особые методы-конструкторы, в Rust просто принято называть метод-конструктор new, чтобы авторы библиотек не мучались выбором другого названия
ага, тоесть new() это стандартное название для конструктора. понял, спасибо
Того, что юзается вместо конструктора
если какой-то метод класса возвращает объект этого класса - это конструктор
Обсуждают сегодня