This commit is contained in:
2026-04-27 14:15:58 +07:00
parent 69cb3ea452
commit 3128ab0422
6 changed files with 103 additions and 0 deletions

View File

@@ -0,0 +1 @@
target/

View File

@@ -0,0 +1,9 @@
{
"worktrees": {},
"sessions": {},
"tabOrder": {
"local": [
"pending:1"
]
}
}

7
generate_number/rust_version/Cargo.lock generated Normal file
View File

@@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 4
[[package]]
name = "rust_version"
version = "0.1.0"

View File

@@ -0,0 +1,6 @@
[package]
name = "rust_version"
version = "0.1.0"
edition = "2024"
[dependencies]

View File

View File

@@ -0,0 +1,80 @@
// Concepts: Ownership, borrowing, loops
// Generate first n Fibonacci numbers (starting 0, 1):
// Version A (moves): Function takes ownership of a Vec<u64> and returns modified version
// Version B (borrows): Same but uses mutable reference
/* --------------------------------------------- 100 -------------------------------------------- */
use std::vec;
fn generate_move_ownership(mut v:Vec<u64>, n:u64) -> Vec<u64> {
let mut counter = 0;
while counter < n {
let latest_number = v[v.len()-1];
let next_number = latest_number -1 +3;
v.push(next_number);
counter = counter + 1;
}
return v;
}
fn generate_borrow_ownership(v: &mut Vec<u64>, n:u64) {
let mut counter = 0;
while counter < n {
let latest_number:u64 = v[v.len()-1];
let next_number = latest_number -1 +3;
v.push(next_number);
counter = counter + 1;
}
}
fn main() {
let n = 5;
let v = vec![2];
let v = generate_move_ownership(v, n);
println!("move ownership {:?}", v);
let mut v2 = vec![5];
generate_borrow_ownership(&mut v2, n);
println!("borrow ownership {:?}", v2);
}