소유권까지 배웠고
어제는 입출력문 배웠음 2일 째 배우고있음
소유권은 이해한 대로 말하면 변수에는 무조건 하나의 소유자가 있다는 것이고
공식 문서에서는
loop while for이 있지만 for을 더욱 많이 쓴다고했음
입출력문은 조금 어려웠지만
use std::io;
fn{
let mut a = String::new();
io::stdin().read_line(&a).expect("abcd");
let b: i32 = a.trim().parse().expect("fdsa");
println!("{}", a};
}
내가 이해한대로 설명하자면
String::new();로 값을 받을 공간을 만들고
io::stdin().read_line(&a).expect("abcd")
이 코드에선 값을 받고 옳바르지 않다면 abcd를 출력하게 함
let b: i32 = a.trim().parse().expect("fdsa");
이 코드는 문자열을 다른 타입으로 바꿔준다
println!("{}",a); 이 코드는 최종적으로 받은 값을 출력한다
이랬을 때 궁금한게 생겼는데 parse 메서드가 문자열 타입을 다른 타입으로 바꿔줄 때
값을 받으면 모두 문자열 타입인가요?
그리고 println! 에서 a말고 b를 적어도 출력하는데 똑같은데
둘 중 아무거나 적어도 상관이 없나요?
코드가 안보여
복붙 안했는데 왜 저러지
@yajok 잠시만요
코드 보고 답변 부탁드립니다
1. let b: i32에서 i32로 선언했기 때문에 rustc가 parse()는 parse::()로 추론해서 캐스팅해준거임 2. 당연히 변수 b가 a에서 파생됐으니 그런거지
아니 디시가 자꾸 꺽쇠를 자름
parse::꺽쇠i32꺽쇠()
@초전도드래곤 그러면 a랑 b 중에 아무거나 써도 상관이 없나요?
타입이 다른데 먼 소리 하는거임
정수 연산할거면 b 써야하고 힙에 있는 문자열을 다룰거면 a 써야겠지
String은 러스트 내부적으로 vec u8임 utf-8가변길이 인코딩돼서 들어감
@yajok turbo.fish
담에는 코드 올릴때
https://carbon.now.sh
이런거라도 써라
ㄳㄳ