Вверх ↑
Администрация
Ответов: 15295
Рейтинг: 1519
#1: 2007-07-03 11:33:02 ЛС | профиль | цитата
Galkov писал(а):
Это разве не конкретный пример


решение писал уже:
println(saved_data, ' := makedata(', _data_, ');')[/code]

если не устраивает делаем св-во data и пишем в хелпе маленьким шрифтом для тех, кому не пофигу на качество их схемы:
[quote=Help]Если на левые точки вы всегда подаете данные одного типа, то рекомендуется явно указывать тип данных в св-ве data[/quote]
и модифицируем код:

 if( typeof(Data) = 1)
    lang(saved_data:int)
else if( typeof(Data) = 2)
lang(saved_data:str)
else if( typeof(Data) = 3)
lang(saved_data:real)
end
...
println(saved_data, ' := ', [e_int|e_str|e_real](_data_), ';')
никаких проблем. И все зависит только от степени ленивости разработчика элемента и уровня пофигизма пользователя.

[quote=Galkov]Т.е., непонятно, как одним компилятором воспользуются his и dll[/quote]
никак. В одном случае ошибку компиляции получим в другом *.dll с исходным кодом проекта... Тут пока решения никакого не найдено.

[size=-2]------ Добавлено в 11:33 [/size]
=== FTCG ===
[tab] Между тем доделал последний оператор цепочки: ручное задание подтипа. Синтаксис:
<expression> @ <data type>[/code]

применяется так:

func CurDir()
  return('GetCurrentDir' @ str)
end

...

func doStrCat
ecent(onStrCat, (Str1 & Str2) @ str)
end

пока писал, понял, что и эти оба примера можно упростить, если автоматически назначать тип выходных данных равным типу соответствующей Var или Event точки. Тогда ручная работа с типами через e_xxx и @ понадобится совсем уж в очень редких случаях.
карма: 27
0