Skip to content

Instantly share code, notes, and snippets.

@heiwa4126
Created January 26, 2023 02:04
Show Gist options
  • Save heiwa4126/26fc26f0cb1f1dea47fa00d1e3194224 to your computer and use it in GitHub Desktop.
Save heiwa4126/26fc26f0cb1f1dea47fa00d1e3194224 to your computer and use it in GitHub Desktop.
ChatGPTに「Rustで配列を逆にする関数を書いてください」と聞いて出てきたコード。
// ChatGPTに
// 「Rustで配列を逆にする関数を書いてください」と聞いて出てきたコード。
// 追加で「オリジナルの配列を破壊的に逆にはできませんか?」と聞いて出てきたのが
// reverse_array_in_place()
fn reverse_array<T: Clone>(arr: &[T]) -> Vec<T> {
let mut reversed = vec![];
for element in arr.iter().rev() {
reversed.push(element.clone());
}
reversed
}
fn reverse_array_in_place<T>(arr: &mut [T]) {
let len = arr.len();
for i in 0..len / 2 {
arr.swap(i, len - i - 1);
}
}
fn main() {
let original_arr = [1, 2, 3, 4, 5, 6];
let mut reversed_arr = reverse_array(&original_arr);
// reverse_array_in_place()用にmut
println!("Original array: {:?}", original_arr);
println!("Reversed array: {:?}", reversed_arr);
reverse_array_in_place(&mut reversed_arr);
println!("Original array: {:?}", reversed_arr);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment