파이프라인은 왼쪽 값을 한 번만 평가하고 오른쪽 형태에 따라 하나의 명확한 방법으로 전달합니다.
정책
value |> rhs를 사용합니다. 오른쪽에 _가 하나 있으면 그 자리에 왼쪽 값을 넣습니다. 호출에 _가 없으면 왼쪽 값을 첫 번째 위치 인수로 넣습니다. 오른쪽이 호출 가능한 값이면 하나의 인수로 호출하고, 속성이면 수신자로 사용합니다.
명시된 동작
왼쪽 표현식은 항상 한 번만 평가됩니다. 플레이스홀더 방식은 정확히 하나의 _를 교체합니다. 인수 삽입 방식은 기존 위치 인수 앞에 값을 넣고, 수신자 방식은 일반 멤버 접근과 같은 타입 규칙을 따릅니다.
제약과 명시적 거부
오른쪽에 여러 개의 _가 있거나, _를 일반 값으로 읽거나, 값을 넣어도 호출할 수 없는 형태를 사용하면 정적 오류입니다. |> ?.field 약식은 없으므로 필요하면 람다로 명시해야 합니다.
유예 경계
함수 합성 연산자, 비동기 파이프라인, 여러 값 플레이스홀더, 사용자 정의 파이프 연산자는 현재 범위 밖입니다.
예제
TOPAZ
function double(value: int) -> int { value * 2 }
let values = [1, 2, 3]
let doubled = values |> map(_, double)
print("{doubled}")