분류
-
Cython: QuickSort code컴퓨터/파이썬 2023. 1. 1. 21:40
cimport: This directive is used to import a Cython-level version of the numpy module. ctypedef: This directive is used to define a Cython type alias for numpy.int_t. cdef: This directive is used to define a Cython function or variable. Cython functions and variables are compiled to C and are not accessible from Python. nogil: This decorator is used to indicate that a Cython function does not nee..
-
Rust: AsMut, AsRef, Deref, DerefMut 정리컴퓨터/Rust 2022. 12. 31. 21:22
Intro Rust의 AsRef, AsMut, Deref 및 DerefMut trait은 값을 변환하고 참조로 사용하는 방법을 제공한다. AsRef 및 AsMut trait을 사용하면 한 type의 값에 대한 참조를 다른 유형의 값에 대한 불변 또는 변경 가능한 참조로 변환할 수 있고, Deref와 DerefMut trait을 사용하면 값을 각각 참조 또는 변경 가능한 참조인 것처럼 사용할 수 있다. AsRef AsRef을 사용하면 참조를 immutable 참조로 변환할 수 있다. AsRef example1 이 예제는 i32 value이라는 단일 필드를 가진 MyStruct라는 구조를 정의하고, MyStruct에 대한 AsRef trait을 구현하여 MyStruct.value에 대한 참조를 i32 값에 ..
-
Rust: Send, Sync 정리컴퓨터/Rust 2022. 12. 29. 17:42
SS Rust의 Send 및 Sync trait은 데이터에 대한 안전한 동시 액세스를 보장하는 데 사용되는 관련 유형이다. 그러나 type이 concurrent 설정에서 사용되도록 설계되지 않은 경우에도 여전히 race 조건이나 기타 동시 액세스 문제가 발생할 수 있기 때문에 Send 및 Sync를 구현한다고 해서 해당 유형이 thread-safe 하다는 보장은 없다는 점에 유의해야 한다. 그러나 이러한 trait을 구현하는 것은 concurrent 설정에서 type을 사용하기 위해 필요한 조건이며, 그러한 맥락에서 type을 안전하게 사용할 수 있다는 보장을 제공한다. 이전에 쓴 RefCell, Arc, Rc, Mutex를 보면 다음 표와 같다. Trait Arc RefCell Rc Mutex Send..
-
Rust: Ref, Arc, Rc, Mutex 문법 정리컴퓨터/Rust 2022. 12. 29. 11:26
RARM @Rust 튜토리얼 웹사이트 Rust 튜토리얼 Hello World! 튜토리얼 소개 🎉 Rust 튜토리얼 기본편 영상을 위한 웹사이트입니다. 키보드 ⬅️/➡️ 버튼으로 페이지를 이동할 수 있습니다. hi-rust.github.io 이 글은 가끔 가다 보이고 concurrent 하게 뭔 짓을 하려 할 때 사용해야 하는 문법에 대한 글이다. Rust의 핵심 기능 중 하나는 메모리 안전성을 보장하는 것입니다. Rust는 이를 소유권(ownership)과 빌림(borrowing)이라는 개념을 통해 처리합니다. 소유권은 변수가 메모리의 어떤 부분을 소유하고 있음을 나타냅니다. 이는 메모리 누수나 불필요한 복사를 방지하는 데 중요합니다. 빌림은 소유권이 있는 변수를 다른 변수가 일시적으로 참조하는 것을 나..
-
Rust: Closure Syntax컴퓨터/Rust 2022. 12. 27. 00:42
Closure란 짧은 일회성 사용 함수를 생성하는 데 매우 유용하다. 일반 함수와 마찬가지로 다른 함수에 인수로 전달하거나 변수에 저장하거나 함수에서 반환할 수 있다. Rust 언어에서는 Fn, FnMut, FnOnce trait가 적용되어 closure가 만들어진다. 람다 함수랑 비슷하게 생겼고 아래는 간단한 예시. 이 글에서 다양한 예제와 비교로 정리해 보았다. fn main() { let plus_one = |x: i32| -> i32 { x + 1 }; // CLOSURE let result = plus_one(5); println!("The result is {}", result); // 6 } 때때로 move 키워드랑 같이 사용하는 것을 볼 텐데 move 키워드는 closure가 단순히 변수를..
-
Rust: Generic Associated Types (GAT)컴퓨터/Rust 2022. 12. 19. 00:09
Rust 언어에선 Associated Type (연관 유형, 이하 AT) 은 trait에 정의된 유형 (type)의 placeholder (자리 표시)이며 trait가 구현될 때 조금 더 구체적인 type으로 대체될 수 있다. AT는 일반 형식의 매개 변수를 사용하여 구조 또는 함수 정의의 형식에 대해 추상화할 수 있는 방법과 유사한 trait 정의 형식에 대해 추상화할 수 있다. 또 AT는 하나 이상의 type 멤버가 있는 trait를 정의하려는 경우에 유용하지만 이러한 멤버들의 특정 type은 trait가 구현될 때까지 알 수 없다. (런타임) trait에 AT가 있는 간단한 예제이다: trait Iterator { type Item; fn next(&mut self) -> Option; } 위 예제..
-
Smart Contract <-> Svelte 프론트엔드 연동컴퓨터/Solidity 2022. 11. 28. 19:33
Svelte Web3 clbrge/svelte-web3 web3.js library integration as a Svelte store. Contribute to clbrge/svelte-web3 development by creating an account on GitHub. github.com 소개 Web3 dApp을 Svelte로 만들 수 있게 도와준다. npm i svelte-web3 yarn install svelte-web3 index.html 아래를 head에 추가한다. 예제 App.svelte 연동 아래는 MetaMask에 연동된다. 알맞은 provider 선택해서 하면 된다. onMount에서 connect 하거나 await connect() pending 해서 렌더링 시킨다. {#if..