«rust» 태그된 질문

Rust는 안전, 속도 및 동시성의 세 가지 목표에 초점을 맞춘 가비지 수집기가없는 시스템 프로그래밍 언어입니다. Rust로 작성된 코드에 대한 질문에이 태그를 사용하십시오. [rust-2018]과 같이 특정 버전이 필요한 코드를 나타내는 질문에 대해서는 버전 별 태그를 사용하십시오. [rust-cargo] 및 [rust-macros]와 같은 하위 주제에 대해보다 구체적인 태그를 사용하십시오.

1
Rust에서 인라인은 언제 사용해야합니까?
Rust에는 다음 세 가지 유형 중 하나에서 사용할 수있는 "인라인"속성이 있습니다. #[inline] #[inline(always)] #[inline(never)] 언제 사용해야합니까? 녹 참조, 우리는 볼 인라인 섹션의 속성을 말을 컴파일러는 내부 휴리스틱을 기반으로 함수를 자동으로 인라인합니다. 함수를 잘못 인라인하면 실제로 프로그램 속도가 느려질 수 있으므로주의해서 사용해야합니다. Rust 내부 포럼에서 huon은 inline 지정 에 대해서도 보수적 …



6
Rust에서 문자열의 첫 글자를 대문자로 바꾸는 이유는 무엇입니까?
의 첫 글자를 대문자로 쓰고 싶습니다 &str. 간단한 문제이고 간단한 해결책을 원합니다. 직감은 나에게 다음과 같은 것을하라고 말한다. let mut s = "foobar"; s[0] = s[0].to_uppercase(); 그러나 &strs는 이와 같이 인덱싱 할 수 없습니다. 내가 할 수 있었던 유일한 방법은 지나치게 복잡해 보입니다. 나는 변환 &str작성, 반복자,로 I 인덱스를 생성하는 …
82 string  rust  uppercase 

1
Rust에서 "기본 유형"이란 무엇입니까?
어딘가에서 "기본 유형"(및 그 속성 #[fundamental]) 이라는 용어를 선택했고 지금 막 그것에 대해 더 많이 배우고 싶었습니다. 어떤 상황에서는 일관성 규칙을 완화하는 것에 대해 막연하게 기억합니다. 그리고 참조 유형이 기본 유형이라고 생각합니다. 불행히도, 웹 검색은 그리 멀지 않았습니다. Rust 참조는 (내가 볼 수있는 한) 언급하지 않습니다. 방금 튜플의 기본 유형 …
37 rust 



2
`std :: mem :: drop`이 상위 특성 트레이드의 클로저 | _ | ()와 정확히 동일하지 않은 이유는 무엇입니까?
구현은 std::mem::drop다음과 같습니다. pub fn drop<T>(_x: T) { } 따라서, 폐쇄 |_| ()( 구체적 으로 화장실 폐쇄 라고도 함 )가 drop양방향으로 잠재적으로 1 : 1로 대체 될 것으로 기대합니다 . 그러나 아래 코드 drop는 화장실 변수가 변하는 반면 함수의 매개 변수에 더 높은 순위의 특성과 호환되지 않음을 보여줍니다 . fn …

4
상위 순위 특성 바인딩 특성에서 관련 유형을 어떻게 반환합니까?
관련 형식을 deserialize하는 기능이있는 특성이 있습니다. 그러나 관련 유형에는 발신자가 결정한 수명이 필요하므로 상위 특성을 사용하는 별도의 특성이 있으므로 평생 동안 직렬화를 해제 할 수 있습니다. 이 관련 유형을 반환하는 클로저를 사용해야합니다. 이를 수행하기 위해 다음 코드가 있습니다. #![allow(unreachable_code)] use std::marker::PhantomData; trait Endpoint: for<'a> EndpointBody<'a> {} trait EndpointBody<'a> { type …

1
Rust에서 비동기 함수를 맵에 어떻게 넣을 수 있습니까?
에 대한 비동기 라우터를 작성할 때 비동기 기능을 처리 할 수 ​​없습니다 hyper. 이 코드는 : use std::collections::HashMap; use std::future::Future; type BoxedResult<T> = Result<T, Box<dyn std::error::Error + Send + Sync>>; type CalcFn = Box<dyn Fn(i32, i32) -> dyn Future<Output = BoxedResult<i32>>>; async fn add(a: i32, b: i32) -> BoxedResult<i32> { …
11 rust  async-await 

1
패키지없이 코드에 대해서만 디버그 정보를 포함 할 수 있습니까?
포함 된 디버그 정보를 사용하면 바이너리가 약 400MB가됩니다. Rust에 모든 의존성에 대한 디버그 정보가 포함되어 있기 때문입니다. 내 코드에 대해서만 디버그 정보를 포함시킬 수있는 방법이 있습니까? [package] name = "app" version = "0.7.1" edition = "2018" [dependencies] actix = "*" actix-web = {version = "1.0", features = ["ssl"]} ... tokio-core …
11 rust  rust-cargo 

1
변수와 함수의 이름이 같은 경우 어떻게 함수를 호출합니까?
변수와 함수의 이름은 동일합니다. 함수를 어떻게 호출합니까? fn main() { let a = 1; fn a() -> i32 { 2 } println!("{}", a()); } Rust 컴파일러는 나에게 말했다 : error[E0618]: expected function, found `{integer}` 즉, Rust 컴파일러는 a함수를 호출하지 않고 대신 a변수에 액세스합니다 .
10 rust 

1
`| _ |의 차이점은 무엇입니까 비동기 이동 {}`및`비동기 이동 | _ | {}`
다음 예를 고려해 봅시다. main.rs use futures::executor::block_on; use futures::future::{FutureExt, TryFutureExt}; async fn fut1() -> Result<String, u32> { Ok("ok".to_string()) } fn main() { println!("Hello, world!"); match block_on(fut1().and_then(|x| async move { Ok(format!("{} is \"ok\"", x)) })) { Ok(s) => println!("{}", s), Err(u) => println!("{}", u) }; } Cargo.toml [dependencies] futures = "^0.3" …
10 rust 

1
콜백으로 참조가 필요한 Rust async fn을 사용하는 방법은 무엇입니까?
async fn는를 구현하는 익명 유형을 반환 Future하므로 콜백으로 사용하려면 반환 값을 특성 객체로 변환해야합니다. 이 작업을 수행하는 함수를 작성하려고했지만 수명 문제가있었습니다. async fn모든 매개 변수의 수명을 반환하므로 콜백의 서명도 필요합니다. 콜백의 반환 값에 수명을 어떻게 추가 할 수 있습니까? use futures::future::{Future, FutureExt, LocalBoxFuture}; type Context = (); type AsyncCb = …
10 rust  async-await 

1
왜 두 번째 impl을 추가하면 인수의 역 참조 강제가 방지됩니까?
impl Add<char> for String을 표준 라이브러리 에 추가하려고 할 때이 문제가 발생했습니다 . 그러나 운영자 shenanigans없이 쉽게 복제 할 수 있습니다. 우리는 이것으로 시작합니다 : trait MyAdd<Rhs> { fn add(self, rhs: Rhs) -> Self; } impl MyAdd<&str> for String { fn add(mut self, rhs: &str) -> Self { self.push_str(rhs); self …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.