Closed azaslavskis closed 2 years ago
By idea on Russian ;
задачка нарисовалась .. Есть данные три float ..и есть строка.. вида xyz . При этом известно что первый это изначально х ... второй у и третий z И задача менять порядок элементов в случае изменении строки .
Лично я подумав пришел к решению такому : создается массив из трех элементов куда после сравнения буквы закидывается верное значение и возвращается уже результат .. Вопрос может кто то подскажет более элегантное решение?
Входные данные : х это первый = 4 y второй float = 7 z третий float = 8 И дана строка zyx Выход : Третий ,второй ,первый . 8 7 4
But thx to @ed-ilyn for better solution that one is F#
let func x y z = ()
let paramOrder order x y z =
match order with
| "xyz" -> func x y z
| "xzy" -> func x z y
| "yxz" -> func y x z
| "yzx" -> func y z x
| "zxy" -> func z x y
| "zyx" -> func z y z
Pattern Matching :) awesome thing that i learnt today
fn main() {
let mut order = String::new();
order.push_str("xzy");
let x: u8 = 8;
let z: u8 = 7;
let y: u8 = 2;
let data: (u8, u8, u8) = match order.as_str() {
"xzy" => (x, z, y),
"xzy" => (x, z, y),
"yxz" => (y, x, z),
"yzx" => (y, z, x),
"zxy" => (z, x, y),
"zyx" => (z, y, x),
_ => (0, 0, 0),
};
println!("{:#?}", data);
}
Done
Idea following , swap axis using string on config