1. if 구문 if구문은 다음과 같이 사용할 수 있다. 다음 코드는 3을 출력한다. fn main() { let number = 3; if number > 5 { println!("5"); }else { println!("{}", number); } } let 구문에서 if를 사용할 수 있다. 다음의 코드는 6을 출력한다. 3항 연산자와 비슷한 느낌이다 fn main() { let condition = false; let number = if condition { 5 }else{ 6 }; println!("{}", number); } 요렇게도 쓰기 가능. 각 if문 내에 스코프에 반환값을 주면 된다. 반환값이 없으면 오류가 발생한다. fn main() { let number = if 1 < 0 { 5 ..
fn 키워드를 이용하여 함수를 생성한다. fn function(){ println!("another function"); } fn main(){ function(); } 아래의 코드는 각각 5, 와 4를 return한다. y의 값은 내부에 선언된 x의 값에서 1이 더해진 값을 출력한다. 반환값은 세미콜론을 입력하지 않는다. y스코프 외부의 x는 그대로 값이 유지된다. fn main() { let x = 5; let y = { let x = 3; x + 1 }; println!("{}, {}", x, y); } return값을 주기위해 함수에 "->" 키워드를 사용한다. typescript, kotlin의 ':' 키워드랑 비슷한 느낌. fn main() { println!("{}", five()); } f..
parameter로 대상 문자열과, 잘라낼 위치값을 가지고 있는 배열을 받음 //c++ string ExtractString(string object, vector position) { if (object.size() < position.size()) return ""; int cnt = 0; string tmp; for (int n = 0; n < object.size(); n++) { if (cnt < position.size()) { if (n == position[cnt]) { cnt++; continue; } } tmp = tmp + object[n]; } return tmp; }
rust는 type명시형 언어이다 컴파일 시 반드시 데이터타입이 정해져 있어야 된다. rust의 타입은 크게 스칼라와 컴파운드 둘로 나뉜다. 스칼라 타입 스칼라는 하나의 값으료 표현되는 타입이다. Rust는 정수형, 부동소수점, 숫자, 문자, boolean 네가지 스칼라 타입을 보유하고 있다. 1. 정수형 소수점이 없는 숫자이다. -(2^n - 1) ~ (2^n-1 - 1) 의 범위이다(n: 비트) Length Signed Unsigned 8비트 i8 u8 16비트 i16 u16 32비트 i32 u32 64비트 i64 u64 arch isize usize 2. 부동 소수점 타입 f32, f64가 있다. 각각 32비트, 64비트이며 float 타입이라고 이해하면 된다. 3. boolean 타입 true, ..
변수 선언 let 키워드를 이용하여 선언 기본적으로 불변성이며 가변적으로 사용하고 싶으면 mut 키워드 사용 let var1: i32 = 1; let mut var2: i32 = 2; var2 = 3; 상수 상수도 값이 불변하지만 변수와의 차이점은 1. const 키워드 사용 2. mut 비허용 3. 상수 표현식만 설정 가능, 함수호출의 결과값이나 그 외 실행시간에 의해 결정되는 값은 설정 불가능. 그리고 상수 명명 규칙에 따라 모든 단어를 대문자로 사용한다. const VAR: u32 = 100000; Shadowing 이전에 선언한 변수와 같은 이름의 새로운 변수를 선언할 수 있고 새로운 변수는 이전 변수를 shadow 함. mut으로 선언하는 것과의 차이점은 불변성을 유지한다는 점, shadowin..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/nwRqc/btq1pzNMKRp/y3pGgg8xaE1yXTre3VUSx0/img.png)
Scope javascript는 다른 일반적인 프로그래밍 언어와 동일하게 변수를 선언, 데이터 할당, 참조하는 기능을 가지고 있다. Scope는 이러한 참조 대상 식별자(변수 등)의 유효범위에 대한 규칙이고, 변수의 접근성, 생존범위를 의미한다. 메모리 구조 메모리의 가장 낮은부분인 코드영역은 실행할 코드가 저장되는 영역이다. 데이터 영역은 프로그램의 전역변수 그리고 정적변수가 저장되는 영역이다. 프로그램이 시작되면 할당되며 프로그램이 종료되면 소멸된다. 힙(heap)영역은사용자가 직접 관리를 하는 영역이다. 사용자가 메모리를 동적으로 관리할 수 있고 메모리의 낮은 주소에서 높은 주소의 방향으로 할당된다. (화살표) 스택 영역은 지역변수와 매개변수가 저장되는 영역이다. 함수가 호출될 경우 할당되며 함수의..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/G2as0/btq0916H9JQ/MsMWsDAjjvGzv8TnjZPrw0/img.png)
러스트로 컴파일 하는 web assembly 앱을 생성해보았다. 선행 조건은 rust, cargo, node, npm이 설치되어 있어야 한다. wasm package를 build하기위해 wasm-pack을 설치하여야 한다. wasm을 설치할 터미널에 아래를 입력하자. cargo install wasm-pack wasm-pack이 다운받아지지 않는다면 사이트에서 다운받자 여기서 wasm-pack을 다운받을 수 있다. https://rustwasm.github.io/wasm-pack/ wasm-pack rustwasm.github.io 그 다음 rust프로젝트를 생성하자. cargo new --lib 프로젝트명 rust프로젝트가 생성되면 해당 프로젝트의 터미널에 아래를 입력하자. wasm-pack build..