본문으로 바로가기
COMMUNITY모든 이야기

외부에서 입력받은 문자열의 일부를 슬라이스로 잘라 구조체 필드에 할당하여 사용하려고 합니다.

코드:

struct User<'a> {
    name: &'a str,
}

fn create_user(input: String) -> User {
    let name_slice = &input[0..4];
    User { name: name_slice }
}

fn main() {
    let user = create_user(String::from("Rustacean"));
    println!("{}", user.name);
}

오류: error[E0515]: cannot return value referencing local variable `input`

--> src/main.rs:7:16

|

7 | User { name: name_slice }

| ^^^^^^^^^^^^ returns a value referencing data owned by the current function

시도: 구조체 정의에 `'a` 라이프타임 파라미터를 추가하였으나 동일한 에러가 발생합니다.

질문: `create_user` 함수 내부에서 생성된 `String`의 일부를 `User` 구조체에 담아 반환하려면 어떻게 수정해야 합니까?

모든 이야기1488

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1488개의 이야기
댓글