- 소개
- 1. Hello World
❱
- 1.1. 주석
- 1.2. 형식화된 출력
❱
- 1.2.1. 디버그
- 1.2.2. 디스플레이
❱
- 1.2.2.1. 테스트케이스: 리스트
- 1.2.3. 형식화
- 2. 기본 자료형
❱
- 2.1. 리터럴과 연산자
- 2.2. 튜플
- 2.3. 배열과 슬라이스
- 3. 사용자 정의 타입
❱
- 3.1. 구조체
- 3.2. 열거형
❱
- 3.2.1. use
- 3.2.2. C-like
- 3.2.3. 테스트케이스: 연결 리스트
- 3.3. 상수
- 4. 변수 바인딩
❱
- 4.1. 가변성
- 4.2. 스코프와 섀도잉
- 4.3. 선언 우선
- 4.4. 동결
- 5. 타입
❱
- 5.1. 형변환
- 5.2. 리터럴
- 5.3. 추론
- 5.4. 별칭
- 6. 타입 변환
❱
- 6.1. From과 Into
- 6.2. TryFrom과 TryInto
- 6.3. String 변환
- 7. 표현식
- 8. 제어 흐름
❱
- 8.1. if/else
- 8.2. loop
❱
- 8.2.1. 중첩과 레이블
- 8.2.2. 반복문에서 리턴하기
- 8.3. while
- 8.4. for와 range
- 8.5. match
❱
- 8.5.1. 구조 분해
❱
- 8.5.1.1. 튜플
- 8.5.1.2. 배열/슬라이스
- 8.5.1.3. 열거형
- 8.5.1.4. 포인터/ref
- 8.5.1.5. 구조체
- 8.5.2. 가드
- 8.5.3. 바인딩
- 8.6. if let
- 8.7. let-else
- 8.8. while let
- 9. 함수
❱
- 9.1. 메서드
- 9.2. 클로저
❱
- 9.2.1. 캡처
- 9.2.2. 입력 파라미터로 사용
- 9.2.3. 타입 익명성
- 9.2.4. 입력 함수
- 9.2.5. 출력 파라미터로 사용
- 9.2.6. std 예제
❱
- 9.2.6.1. Iterator::any
- 9.2.6.2. 이터레이터 검색
- 9.3. 고차 함수
- 9.4. 발산 함수
- 10. 모듈
❱
- 10.1. 가시성
- 10.2. 구조체 가시성
- 10.3. use 선언
- 10.4. super와 self
- 10.5. 파일 계층 구조
- 11. 크레이트
❱
- 11.1. 라이브러리 생성
- 11.2. 라이브러리 사용
- 12. 카고
❱
- 12.1. 의존성
- 12.2. 관례
- 12.3. 테스트
- 12.4. 빌드 스크립트
- 13. 속성
❱
- 13.1. dead_code
- 13.2. 크레이트
- 13.3. cfg
❱
- 13.3.1. 사용자 정의
- 14. 제네릭
❱
- 14.1. 함수
- 14.2. 구현
- 14.3. 트레이트
- 14.4. 바운드
❱
- 14.4.1. 테스트케이스: 빈 바운드
- 14.5. 다중 바운드
- 14.6. Where 절
- 14.7. New Type 관용구
- 14.8. 연관 아이템
❱
- 14.8.1. 문제점
- 14.8.2. 연관 타입
- 14.9. 팬텀 타입 파라미터
❱
- 14.9.1. 테스트케이스: 단위 명확화
- 15. 스코프 규칙
❱
- 15.1. RAII
- 15.2. 소유권과 이동
❱
- 15.2.1. 가변성
- 15.2.2. 부분 이동
- 15.3. 빌림
❱
- 15.3.1. 가변성
- 15.3.2. 별칭
- 15.3.3. ref 패턴
- 15.4. 라이프타임
❱
- 15.4.1. 명시적 어노테이션
- 15.4.2. 함수
- 15.4.3. 메서드
- 15.4.4. 구조체
- 15.4.5. 트레이트
- 15.4.6. 바운드
- 15.4.7. 강제
- 15.4.8. Static
- 15.4.9. 생략
- 16. 트레이트
❱
- 16.1. Derive
- 16.2. dyn으로 트레이트 반환하기
- 16.3. 연산자 오버로딩
- 16.4. Drop
- 16.5. 이터레이터
- 16.6. impl Trait
- 16.7. Clone
- 16.8. 슈퍼트레이트
- 16.9. 중복 트레이트 명확화
- 17. macro_rules!
❱
- 17.1. 문법
❱
- 17.1.1. 지시자
- 17.1.2. 오버로드
- 17.1.3. 반복
- 17.2. DRY (반복하지 말라)
- 17.3. DSL (도메인 특화 언어)
- 17.4. 가변 인자
- 18. 에러 핸들링
❱
- 18.1. panic
- 18.2. abort와 unwind
- 18.3. Option과 unwrap
❱
- 18.3.1. ?로 옵션 풀기
- 18.3.2. 콤비네이터: map
- 18.3.3. 콤비네이터: and_then
- 18.3.4. 기본값: or, or_else, get_or_insert, get_or_insert_with
- 18.4. Result
❱
- 18.4.1. Result에서의 map
- 18.4.2. Result의 별칭
- 18.4.3. 조기 리턴
- 18.4.4. ? 소개
- 18.5. 여러 에러 타입
❱
- 18.5.1. Option에서 Result 꺼내기
- 18.5.2. 에러 타입 정의하기
- 18.5.3. 에러 Box하기
- 18.5.4. ?의 다른 용도
- 18.5.5. 에러 감싸기
- 18.6. Result 반복하기
- 19. 표준 라이브러리 타입
❱
- 19.1. Box, 스택과 힙
- 19.2. 벡터
- 19.3. 문자열
- 19.4. Option
- 19.5. Result
❱
- 19.5.1. ?
- 19.6. panic!
- 19.7. 해시맵
❱
- 19.7.1. 대체/사용자 정의 키 타입
- 19.7.2. 해시셋
- 19.8. Rc
- 19.9. Arc
- 20. 기타 표준 라이브러리
❱
- 20.1. 스레드
❱
- 20.1.1. 테스트케이스: 맵-리듀스
- 20.2. 채널
- 20.3. 경로
- 20.4. 파일 입출력
❱
- 20.4.1. open
- 20.4.2. create
- 20.4.3. read_lines
- 20.5. 자식 프로세스
❱
- 20.5.1. 파이프
- 20.5.2. 대기
- 20.6. 파일시스템 연산
- 20.7. 프로그램 인자
❱
- 20.7.1. 인자 파싱
- 20.8. 외부 함수 인터페이스
- 21. 테스트
❱
- 21.1. 유닛 테스트
- 21.2. 문서 테스트
- 21.3. 통합 테스트
- 21.4. 개발 의존성
- 22. Unsafe 연산
❱
- 22.1. 인라인 어셈블리
- 23. 호환성
❱
- 23.1. Raw 식별자
- 24. 메타
❱
- 24.1. 문서화
- 24.2. 플레이그라운드