Да, это плохой стиль. Мало того, что это сбивает с толку, импортируете ли вы struct Point
или функцию с одинаковым именем, это также противоречит общим соглашениям об именах:
warning: function `Point` should have a snake case name
--> src/main.rs:7:4
|
7 | fn Point(x: i32, y: i32) -> Point {
| ^^^^^ help: convert the identifier to snake case: `point`
|
= note: `#[warn(non_snake_case)]` on by default
Нет, вы также должны использовать ::new()
или создайте поля publi c, чтобы пользователь мог построить его следующим образом:
let point = Point { x: 1, y: 2 };
И нет, он не будет удален в ближайшее время, потому что это всего лишь стиль / проблема дизайна, а не то, что влияет на Rust каким-либо значимым образом. Несмотря на это, людям не понравится, когда вы это сделаете, потому что это противоположно общим рекомендациям, которым мы все следуем, чтобы упростить интеграцию сторонних библиотек.
Если вы хотите просто иметь именованный кортеж, затем используйте вместо него именованную структуру кортежа:
#[derive(Debug)]
struct Point(i32, i32);
fn main() {
let p = Point(1, 2);
println!("{:?}", point); // Point(1, 2)
}