Development Tip

이 언랩이란 무엇입니까? 때로는 언랩되거나 언랩되거나

yourdevel 2020. 11. 10. 22:22
반응형

이 언랩이란 무엇입니까? 때로는 언랩되거나 언랩되거나


참고이 질문의 세부 사항 은 Rust 1.0 이전 버전 read_line~str관련이 있습니다. 에 대한 일반적인 개념 unwrap과는 unwrap_or관련 남아있다.

나는 Rubyists를위한 Rust를 읽는 동안 그것을 만났습니다 .

let mut reader = BufferedReader::new(io::stdin());
let input = reader.read_line().unwrap_or(~"nothing");

참고이 답변의 세부 사항 은 Rust 1.0 이전 버전 read_line~str관련이 있습니다. 에 대한 일반적인 개념 unwrap과는 unwrap_or관련 남아있다.

read_line실패 할 수 있기 때문에 Option<~str>. 값을 얻으려면 패턴 일치 또는 unwrap 메서드 중 하나를 사용할 수 있습니다.

의 차이 unwrap와는 unwrap_orunwrap값이 (가없는 경우 실패합니다 None)하지만 unwrap_or(이 경우 "아무것도") 지정된 기본을 반환합니다


참고이 답변의 세부 사항 은 Rust 1.0 이전 버전 read_line~str관련이 있습니다. 에 대한 일반적인 개념 unwrap과는 unwrap_or관련 남아있다.

Rust에는 이러한 것들을 설명하는 API 문서가 있습니다.

BufferedReader.read_line:

fn read_line(&mut self) -> Option<~str>

UTF-8로 인코딩 된 유니 코드 코드 포인트의 시퀀스로 해석되는 다음 입력 줄을 읽습니다. 개행이 발견되면 반환 된 문자열에 개행이 포함됩니다.

[그런 다음 io_error조건을 제기하는 방법에 대해 설명 None합니다. 조건이 처리 되면 반환 되는 상황입니다. 그렇지 않으면 실패 할 것이고, 그래서 당신은 아무것도 다시 얻지 못할 것입니다.]

None독자에서 모든 것을 읽은 경우 에도 반환됩니다.


Option.unwrap:

fn unwrap(self) -> T

옵션 유형에서 값을 이동하고 반환합니다.

복사하지 않고 옵션 유형에서 문자열, 벡터 및 고유 포인터를 가져 오는 데 주로 유용합니다.

그건,

  • Some(a).unwrap() 보고 a
  • None.unwrap() 실패

Option.unwrap_or:

fn unwrap_or(self, def: T) -> T

포함 된 값 또는 기본값을 반환합니다.

그건,

  • Some(a).unwrap_or(b) 보고 a
  • None.unwrap_or(b) 보고 b

참고 URL : https://stackoverflow.com/questions/21257686/what-is-this-unwrap-thing-sometimes-its-unwrap-sometimes-its-unwrap-or

반응형