메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Ahn9807 (토론 | 기여)님의 2025년 9월 25일 (목) 12:06 판 (새 문서: 분륲: 프로그래밍 언어 == 개요 == Affine type이란 프로그래밍 언어나 타입 시스템에서, 어떤 값이 '''최대 한 번만 사용될 수 있음'''을 보장하는 타입이다. 정확히 한번 사용해야 하는 Linear type과는 다르게, 최대 사용안하거나 1번 사용하는 것을 허용한다. Affine type은 한번 사용된 type이 다시 사용되는 것을 막기 때문에 안전성을 컴파일 타임에 보장할 수 있다. Rust...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

분륲: 프로그래밍 언어

개요

Affine type이란 프로그래밍 언어나 타입 시스템에서, 어떤 값이 최대 한 번만 사용될 수 있음을 보장하는 타입이다. 정확히 한번 사용해야 하는 Linear type과는 다르게, 최대 사용안하거나 1번 사용하는 것을 허용한다.

Affine type은 한번 사용된 type이 다시 사용되는 것을 막기 때문에 안전성을 컴파일 타임에 보장할 수 있다.

Rust에서 본직적으로 Copy를 사용하지 못하는 모든 타입은 Affine하다고 볼 수 있다. (E.g., Integer 혹은 Reference)

fn consume(x: String) {
    println!("{}", x);
}

fn main() {
    let s = String::from("hi");
    consume(s);   // 여기서 소유권 이동
    // println!("{}", s); // ❌ 사용 불가 (affine 제약)
}