루코스 연습
function receive()
local status,value = coroutine.resume(producer)
return status,value
end
function send(x)
coroutine.yield(x)
end
producer = coroutine.create(
function()
local x = 0
while true do
x = x+1
if(x > 10) then
break
end
send(x)
end
end)
local status,res
repeat
status,res = receive()
print(status, res)
until(nil == res)
출력:
>lua -e "io.stdout:setvbuf 'no'""1.lua"true 1true 2true 3true 4true 5true 6true 7true 8true 9true 10true nil>Exit code: 0
이런 모델은 소비자 구동 모델이라고 불린다.
필터 필터는 생산자와 소비자 사이에 있는 처리 함수로 데이터를 변환하는 데 사용된다.그것은 생산자이자 소비자이다. 그는 생산자에게 newvalue를 일으키도록 깨우고 변환된 값을 소비자에게 전달한다.
자신이 쓴 코드를 표시합니다. 문제가 발생했습니다.
function receive(prod)
local value = coroutine.resume(prod)
return value
end
function send(x)
coroutine.yield(x)
end
x = 0
function producer()
return coroutine.create(
function()
x = x + 1
print(sting.format("producer:%d.
",x))
return x
end)
end
function filter(prod)
return coroutine.create(
function()
local x = receive(prod)
x = string.format("Add:%d",x)
send(x)
end
)
end
function consumer(prod)
repeat
res = receive(prod)
print(res)
until (nil == res)
end
p = producer()
f = filter(p)
print(x)
consumer(f)
저녁에 가서 어떻게 된 일인지 보자.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.