질문&답변
가변 참조에 대한 주요 제약사항 퀴즈 문의
안녕하세요. 답변이 늦어 죄송합니다. 확인해보니 새로 추가된 AI 퀴즈 기능이네요. 문제 자체가 잘못된 것 같습니다. 인프런 측에 문제 수정을 요청드리겠습니다. 감사합니다!
- 좋아요수
- 0
- 댓글수
- 3
- 조회수
- 90
미들 (4~8년) · 백엔드/서버 개발자
SAP Labs Korea
질문&답변
안녕하세요. 답변이 늦어 죄송합니다. 확인해보니 새로 추가된 AI 퀴즈 기능이네요. 문제 자체가 잘못된 것 같습니다. 인프런 측에 문제 수정을 요청드리겠습니다. 감사합니다!
팀프로젝트
질문&답변
하나의 메모리 주소에 대해서 단 하나의 접근자만 접근을 허용한다는 의미입니다. 예를 들어 하나의 값에 대해 여러 개의 포인터를 실제로 가지고 있더라도, 해당 메모리 주소에 접근하고 값을 읽고 수정하는 과정을 모두 atomic 하게 처리합니다. 물론 이는 어디까지나 safe 러스트의 이야기이고, unsafe 러스트로 들어가면 직접 메모리 주소에 접근하는 C 스타일 포인터처럼 사용도 가능합니다. 결론적으로 러스트에서 제공하는 문법과 도구들만 사용한다면 항상 원자적 연산이 보장된다고 이해하셔도 좋을 것 같습니다.
질문&답변
안녕하세요, pyo3 가 버전이 올라가면서 생긴 문제입니다. 먼저 lib.rs 는 다음과 같이 수정하세요. use pyo3::prelude::*; fn _run(n: u64) -> u64 { match n { 0 => 0, 1 => 1, _ => _run(n - 1) + _run(n - 2), } } #[pyfunction] fn run(n: u64) -> PyResult { Ok(_run(n)) } /// A Python module implemented in Rust. #[pymodule] fn fibonacci(_py: Python, m: &Bound ) -> PyResult { m.add_function(wrap_pyfunction!(run, m)?)?; Ok(()) } 그리고 Cargo.toml 은 다음과 같습니다(피처만 추가하셔도 됩니다) [package] name = "fibonacci" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [lib] name = "fibonacci" crate-type = ["cdylib"] [dependencies.pyo3] version = "0.23.3" features = ["extension-module"] 이제 패키지가 잘 빌드되고 파이썬에서도 함수 호출이 정상적으로 기능합니다. Python 3.12.6 (main, Sep 15 2024, 11:07:06) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import fibonacci >>> fibonacci.run(3) 2 >>> fibonacci.run(3000)