Galkov писал(а):
Т.е., однопроходных возможностей я совсем не понял....примерно так:
func doStrCat()
fvar(s1,s2)
s1 = Str1
s2 = Str2
if( isVolatile(s1) or isVolatile(s2) )
println(buf, ' := ', s1 & s2, ';')
event(onStrCat, volatile(buf))
else
event(onStrCat, s1 & s2)
end
end
собственно реализуем весь этот код в lng как метод буферизации данных в случае наличия Volatile и получаем:
func doStrCat()
fvar(s1,s2)
s1 = Str1
s2 = Str2
event(onStrCat, lng.bufIfVolatile(s1 & s2))
end
либо тоже самое, но в хабе:
func doEvent()
fvar(buf)
buf = lng.bufIfVolatile(_data_)
for(...)
ebent(onEvent, buf)
end
end