간단하게 러스트를 배우게 된 이유WebAssembly의 등장 (생각보단 오래되긴 했지만)추후 WebAssembly를 이용한 웹 프로젝트를 진행해보고 싶은 마음이 있다.Solana나 Polkadot과 같이 블록체인 프로그램을 적어보고 싶어서아무래도 Javascript보다
입출력을 위해 io(input/output) 라이브러리 가져온다io 라이브러리는 std라는 표준 라이브러리에 포함되어 있음let mut guess = String::new()를 보자일단 기본적으로 러스트 변수는 immutable임하지만 변경할 수 있는 변수를 생성하기
let, const 키워드를 이용하며 두 키워드 모두 기본적으로 불변성을 갖고 있다.다만 mut를 붙이거나 shadowing을 이용하면 값을 변경 가능하다.let과 const는 둘다 불변성을 갖고 있지만,const는 mut 키워드를 쓸 수 없고, 선언시 타입을 지정해줘
자바스크립트 같은 경우는 가비지 콜렉터를 통해 메모리 관리를 하는데러스트는 소유권이라는 개념으로 메모리를 관리한다.일단 러스트 변수들은 블록 스코프를 따른다기본적으로 크기가 정해져 있지 않은 배열과 같은 데이터 타입들은스택에 저장될 수 없기 때문에 힙 메모리에 저장되게
마치 자바스크립트 객체와 비슷하다.다만, 구조체의 몇몇 필드만을 가변 데이터로 표시할 수 없고,구조체 인스턴스 자체가 가변이거나 불가변이거나 둘 중 하나구조체 타입은 구조체가 소유권을 갖는 타입으로 지정해주거나 참조 타입이라면 lifetimes를 지정해주어야 한다.다만
열거자란 형식의 개념은 비슷하나 서로 다른 구조를 가지고 있는 타입을 생성할 때 사용한다.예를 들면 IP 주소가 있다.현재 IP 주소는 v4, v6이 있는데, 서로 개념은 비슷하나 데이터 구조는 서로 다르다.구조체로는 이를 구현하기 어렵지만, 열거자를 사용하면 구현 가
러스트에는 두 가지 error가 있다.바로 회복이 가능한 에러와 회복이 불가능한 에러예를 들어, Vec에 존재하지 않는 index에 접근하려고 한다던지 하면runtime 단계에서 panic 에러가 뜨게 된다.그럼 rust는 그 즉시 프로그램 실행을 중단하고 콘솔에 에러
컬렉션이란, 하나의 특정한 값이 아닌 여러개의 값을 포함하는 데이터 타입이다.가장 많이 활용되는 세가지 컬렉션은 다음과 같다.벡터문자열해시 맵벡터는 단일 데이터 구조에 하나 이상의 값을 메모리 바로 옆에 붙이면서 저장하는 타입이다.벡터 생성은 두 가지 방법이 있는데1\