Добавить объявление

Еще одно сходство между Rust и Swift

Обнаружил еще одно сходство между Rust и Swift, которое работает идентично, но выглядит немного по-разному.

Конструкции match (Rust):

let num = 1;
let point = (2, 3);

match num {
1 => println!("один"),
2 => println!("два"),
3 => println!("три"),
_ => println!("непонятно")
}

let result = getPointType((2, 3));
println!("{}", result); // Другие координаты

fn getPointType(point: (i32, i32)) -> String {
match point {
(0, 0) => "В начале координат".to_string(),
(_, 0) => "На оси X".to_string(),
(0, _) => "На оси Y".to_string(),
_ => "Другие координаты".to_string()
}
}

И switch (Swift):

let num = 1

switch num {
case 1: print("один")
case 2: print("два")
case 3: print("три")
default: print("непонятно")
}

let result = getPointType(point: (2, 3))
print(result) // Другие координаты

func getPointType(point: (Int, Int)) -> String {
switch point {
case (0, 0): "В начале координат"
case (_, 0): "На оси X"
case (0, _): "На оси Y"
default: "Другие координаты"
}
}

Как видите, функционально конструкции идентичны: везде есть pattern matching, обработка всех случаев и возврат значений. Но визуально switch в Swift мне кажется более аккуратным.
14.10.2025 14 161