Может кто объяснить чем отличается RETURN var от RETURN(var)?
Читаю хелп, ничего не понимаю ((
Оператор RETURN
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Дед Пахом
- Старичок
- Сообщения: 3133
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 10 раз
- Поблагодарили: 28 раз
- Контактная информация:
RETURN имеет только один вид:
RETURN [expression]
а [expression] может быть как со скобками, так и без ( к ретурну это уже не относится).
А теперь цитата из русского хелпа:
RETURN [expression]
а [expression] может быть как со скобками, так и без ( к ретурну это уже не относится).
А теперь цитата из русского хелпа:
Всё ясно?Выражение в круглых скобках – это выражение допустимое с точки зрения синтаксиса. Если в круглые скобки заключена переменная, то выражение разыменовывается значением этой переменной и преобразуется в один из базовых типов. Относительно использования скобок с RETURN, если функция имеет тип возвращаемой переменной, возвращаемая переменная использованныя в операторе RETURN не должна заключаться в круглые скобки.
С уважением, ДП
Суть в том, что возвращаемое значение может быть или byRef или valueType. В первом случае передается только референс на переменную, но не значение самой переменной. Во втором случае - само значение.
Иначе говоря RETURN (Val), говорит компилятору о том что Val необходимо всегда приводить к значению, даже если это референс. Например, если Val это CLASS или INTERFACE, компилятор должен выдать ошибку.
Так ли это на самом деле не проверял...
Иначе говоря RETURN (Val), говорит компилятору о том что Val необходимо всегда приводить к значению, даже если это референс. Например, если Val это CLASS или INTERFACE, компилятор должен выдать ошибку.
Так ли это на самом деле не проверял...
Regards,
TC
TC
Именно так. Очень часто встречается в классахtry-catch писал(а):Суть в том, что возвращаемое значение может быть или byRef или valueType. В первом случае передается только референс на переменную, но не значение самой переменной. Во втором случае - само значение.
Иначе говоря RETURN (Val), говорит компилятору о том что Val необходимо всегда приводить к значению, даже если это референс. Например, если Val это CLASS или INTERFACE, компилятор должен выдать ошибку.
Так ли это на самом деле не проверял...
S &CString
NewString procedure(String S),&CString
Local &CString
Code
Local &= New Cstring(Len(S)+1)
Local = S
Return Local
После вызова S &= NewString('Строка') в процедуре будет создана строка и ссылка присвоена S. Если написать Return(Local) - ссылка должна быть разыменована.