fn main() {
    //let v: Vec = Vec::new();
    //let mut v = vec![1,2,3];
    let mut v = Vec::new();
    v.push("asdf");
    //v.push(4);
    println!("Hello, world!");
}


여기서 v의 타입이 v.push에서 결정되는데 어떻게 이게 가능한거임?
그리고 Vec::new()를 정의한 순간 v에 벡터가 할당되는데 T가 없는데 어떡함?

v.push ~~ 줄 지우니깐 unknown error 뜨긴하던데 동작하는 원리가 뭐임?
컴파일러가 v를 처음 사용한지점 찾아내서 타입가져오는거?

그게 맞다면 이건 왜 안됨?


fn main() {
    //let v: Vec = Vec::new();
    //let mut v = vec![1,2,3];
    let mut v = Vec::new();
    foo(&mut v);
    //v.push("asdf");
    //v.push(4);
    println!("Hello, world!");
}

fn foo(v: &mut Vec) {
    v.push("asdf");
}


ㅈㄴ 어렵네 ㅠㅠ