모듈:Pipeline: 두 판 사이의 차이

리버티게임(개발), 모두가 만들어가는 자유로운 게임
둘러보기로 이동 검색으로 이동
>Hsl0
(새 문서: local p = {} local tf = require('모듈:TemplateFunction') function p.single(frame) local returned = nil for source in ipairs(frame.args) do returned = mw.title.new(source, 'Template').exists and tf.load(source) or tf.create(source):parse{prev = returned} end return returned end)
 
>Hsl0
편집 요약 없음
2번째 줄: 2번째 줄:
local tf = require('모듈:TemplateFunction')
local tf = require('모듈:TemplateFunction')


function p.single(frame)
function p.whole(frame)
local returned = nil
local returned = nil
13번째 줄: 13번째 줄:
return returned
return returned
end
end
return p

2023년 11월 25일 (토) 22:35 판


모듈 설명문서[보기] [편집] [역사] [새로 고침]

이전 값에 종속되는 여러 틀을 연속적으로 실행합니다. 이를 통해 복잡한 로직을 함수형으로 구현하거나 중첩된 틀을 가독성 좋게 바꿀 수 있습니다.

사용법

code_blocks 코드
{{#invoke:Pipeline|pipe |{{#invoke:pipeline|pass|9|a=10}}11 |<nowiki>{{#expr:{{{1}}}+{{{a}}}+{{RETURNED}}}}</nowiki> }}
code
낙서장에서 확인
description 결과
스크립트 오류: 함수 "pipe"가 존재하지 않습니다.

이전에 실행된 함수의 값을 RETURNED 상수를 통해 통째로 다음 함수에 넘겨줍니다. pass 함수를 활용하여 여러 값을 넘겨줄 수 있습니다.


local p = {}
local tf = require('모듈:TemplateFunction')

function p.whole(frame)
	local returned = nil
	
	for source in ipairs(frame.args) do
		returned = mw.title.new(source, 'Template').exists
			and tf.load(source)
			or tf.create(source):parse{prev = returned}
	end
	
	return returned
end

return p