일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- rust 기초
- 컨트렉트 동일한 함수이름 호출
- ethers typescript
- ambiguous function description
- 티스토리챌린지
- 컨트렉트 배포 자동화
- chainlink 설명
- git rebase
- nest.js설명
- multicall
- 체인의정석
- 스마트컨트렉트프록시
- 러스트 기초 학습
- 오블완
- ethers
- ethers type
- 러스트기초
- 스마트 컨트렉트 함수이름 중복
- 스마트컨트렉트테스트
- ethers websocket
- SBT표준
- 머신러닝기초
- vue기초
- 스마트컨트렉트 함수이름 중복 호출
- Vue.js
- Vue
- 러스트 기초
- 프록시배포구조
- 스마트컨트렉트 예약어 함수이름 중복
- ethers v6
- Today
- Total
목록러스트 기초 (3)
체인의정석
References와 Borrowing fn main() { let s1 = String::from("hello"); let len = calculate_length(&s1); println!("The length of '{}' is {}.", s1, len); } fn calculate_length(s: &String) -> usize { s.len() } calculate_length를 계산하는 방법은 다음과 같다. &를 다음과 같이 사용하게 되면 레퍼런스만 파라미터로 넘겨서 소유권 이전 없이도 사용이 가능하게 된다. 첫째, 튜플의 모든 가변성 있는 변수들과 함수들은 사라진다. 둘째, &s1을 calculate_length로 넘기고 정의를 할 때 &String을 String 대신에 가져간다. 위의 그..
변수와 데이터간의 상호작용 다수의 변수들은 러스트에서 같은 데이터로 다른 방향으로 상호작용한다. let x = 5; let y = x; 예시로 위와 같은 값이 지정된다고 가정해 보갰다. 이렇게 되면 x, y 둘다 5를 가지게 되며 스택에 5값이 2개가 쌓이게 된다. fn main() { let s1 = String::from("hello"); let s2 = s1; } 문자열의 경우에 s1이랑 s2가 같이 올라갈 것 같지만 실제로는 그렇지 않다. 실제로는 위에 처럼 string은 포인터, 길이, 용량 3가지 값으로 구성되어 있으며 해당 그룹의 데이터는 스택에 들어가 있다. 실제 콘텐츠는 오른쪽 힙 형태의 메모리에 들어가 있게 된다. 길이는 얼마나 많은 메모리, 바이트, 내용물들이 실제로 사용되고 있는지를..
기본 함수 기본 함수는 다음과 같이 정의한다. fn main() { another_function(5); } fn another_function(x: i32) { println!("The value of x is: {x}"); } 이런 식으로 정의를 하게 되면 ➜ functions (master) ✗ cargo run Compiling functions v0.1.0 (/Users/chohk/Desktop/git/rust/functions) Finished dev [unoptimized + debuginfo] target(s) in 0.84s Running `target/debug/functions` The value of x is: 5 이런 결과가 나오게 된다. 여러 변수의 정의는 그냥 일반적인 함수와 ..