Указатель

  • Автор темы T1000
  • Дата начала
T

T1000

#1
Всем добра и щастья! :)

Вопрос можно сказать с "потолка" (просто суть задачи описать мне сейчас сложнее).
Есть ли в Lotus такая фишка как указатель на переменную\массив и т.д.
Если есть черканите плз пример кода, если же нет, буду думать :ble: :trash: как без этого обойтись.
 

TIA

:-)
Lotus team
15.05.2009
790
3
#2
Есть. В некотором смысле все переменные объектов и есть указатели.
Пример:

Dim doc as notesDocument
Dim doc2 as notesDocument

Set doc = doc2
Msgbox doc is doc2

Передача параметров по-умолчанию тоже происходит по ссылке

Sub foo( s as string)
...
s="B"
End Sub

Sub Click
dim s1 as string
s1 = "A"
foo s
msgbox s
End Sub
 
T

T1000

#3
чОрд, забыл я С\С++ совсем :) (они там вроде со знаком умножить перед именем переменной объявляются)
Меня интересует все же указатели на переменные, а не на объекты. Что-то типа
dim ar(10) as integer
dim *x

*x=ar ' в х соответственно храниться ar(0), и доступ к любому элементу можно осуществлять как *(x+номер)=данные
заранее звиняйте если что с синтаксисом сей не так (я его почти забыл уже :ble: )
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 567
263
#4
если планируется "играть" в формирование и подстановку указателей и вызовов (как в Си) - ждет облом :)
но есть и "плюсы" интерпретируемых языков - рантайм "сборка" из кода (Execute)
есть java и рефлекшн - там "динамики" достаточно...

и ваще - не корректно переносить "подходы" одного языка в др.
 
T

T1000

#6
java и рефлекшн это просто не нужно.
я не старался перенести подход, просто подумал что при изучении лотуса я этот момент упустил\не нашел\вообще не выучил.

спс, значит не буду более голову ломать. нет значит нет.
 

nvyush

Lotus team
22.04.2009
2 317
0
#7
java и рефлекшн это просто не нужно.
я не старался перенести подход, просто подумал что при изучении лотуса я этот момент упустил\не нашел\вообще не выучил.

спс, значит не буду более голову ломать. нет значит нет.
Есть ещё один момент в Лотусе, который сильно напрягает после С++ и др. В LS нет глобальных переменных уровня приложения. Для чисел и строк можно с некоторыми оговорками пользовать переменные окружения или профильные документы, а вот с объектными переменными большой облом. Обходные пути слишком сложны, чтобы их рекомендовать.
 

TIA

:-)
Lotus team
15.05.2009
790
3
#8
Хм. Поcле С++, LS - это детская песочница. Как Зюзик после Порше. Напрягает всё.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#9
если тебе нужно задеклалировать функцию требующей указатель то делай так
Declare MyFun ..... (ByVal a1 as integer)
в данном случае из-за ByBal передасться указатель
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#10
в данном случае из-за ByBal передасться указатель
з дуба впав? :D

абсолютно ничего не напрягает :) и вообще! дышиться легко! не надо париться!
единственное чего мне пока в коде не хватало - указатели на процедуры, т.к. механизм call-back вызова нельзя использовать стандартными сттредствами. и то, у меня эта задача была только для глупой попытки создания своего окна... и еще когда-то. в общем, для апишек.
 

TIA

:-)
Lotus team
15.05.2009
790
3
#11
абсолютно ничего не напрягает и вообще! дышиться легко! не надо париться!
Аутотренинг? :)

Нехватает:
Предпроцессора, множественного наследования, шаблонов, более гибкого управления областью видимости, перечислений, пространств имён и т.д. и т.п. и т.д. и т.п. и т.д. и т.п. и т.д. и т.п. и т.д. и т.п. и т.д. и т.п. :D
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 567
263
#14
Аутотренинг? :)

Нехватает:
Предпроцессора, множественного наследования, шаблонов, более гибкого управления областью видимости, перечислений, пространств имён и т.д. и т.п. и т.д. и т.п. и т.д. и т.п. и т.д. и т.п. и т.д. и т.п. и т.д. и т.п. :D
вот не всем "этого" не хватает (впомним процедурные языки)...
и потом - java перекрывает почти всё (с версии 1.6) и встроена в платформу...
каждый инструмент решает свои задачи

я себе слабо представляю платформу (как единое целое) со встроенным плюсовым движком ;) - обычно стараются отстранить... разрабов, дабы "шаловливые руки" не похачили основу
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#15
может быть изредка и был бы полезен, но так ли необходим? кроме того, может быть заменен обычными языковыми условными конструкциями. на размер кода врядли сильно повлияет - не вирусы ж пишем! и не ядра ОС для мобильных.
множественного наследования
вообще вредное свойство. кроме того, никто не мешает зарядить яву.
не понял, узок в знаниях...
более гибкого управления областью видимости
а как управлять ОВ в Цпп? О.о
да, полезная штука, можно заменить побитовыми операциями, если не ошибаюсь, хотя неудобнее
тоже не понятно зачем?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 567
263
#16
Akupaka
у явы нет множественного наследования, в прямом понимании этого термина на плюсах
 

TIA

:-)
Lotus team
15.05.2009
790
3
#19
lmike
Akupaka

Господа, напомню, сравнивали то, что напрягает в LS после С++. Java - рулезз. Notes - долгих лет жизни. Совсем не хочу переходить в плоскость обсуждения почему Нотес форэва -- эта тема уже оскомину набила. На любом форуме по тыще раз обсуждают. Нотес я люблю нежно.
Возможностей LS хватает, но многие вещи могли бы решаться и реализовываться проще.

вот не всем "этого" не хватает (впомним процедурные языки)...
Вспомим ещё ассемблер и палку-копалку.
я себе слабо представляю платформу (как единое целое) со встроенным плюсовым движком
C# - почти C++. Платформа - VS2008. Если бы не сложность C++ ничего принципиально бы не мешало его использовать для MS Office вместо VB

множественного наследования
вообще вредное свойство. кроме того, никто не мешает зарядить яву.
В Яве ещё лучше -- интерфейсы. Но мы про ЛС. Что предлагает ЛС взамен? Обёртки на каждый чих?

Предпроцессора

может быть изредка и был бы полезен, но так ли необходим?
Зависит от поставленных задач. см. ниже

кроме того, может быть заменен обычными языковыми условными конструкциями.
Меня больше интересовала не условная компиляция, а макросы. Т.е. конструирование выражений на этапе компиляции. Если без параметров, то ограниченно заменяем %include. Мощнее через DXL, но слишком низкоуровнево. Иногда спасает Execute. Макросы тоже не лучшее решение. Идеально - некий метаязык конструирования выражений на LS на этапах компиляции, сборки и выполнения.

перечислений

да, полезная штука, можно заменить побитовыми операциями, если не ошибаюсь, хотя неудобнее
Нельзя, т.к. перечисления (не путаем enum и union) -- это прежде всего контроль типов.

пространств имён
тоже не понятно зачем?
Опять же для ограничения области видимости. Почему глобальная область видимости хуже локальной, Вы кажется понимали. :)


Добавлено:
из той же серии, что не надо путать ОС и платформу (LN) для языков цветочных писем
Наверно, Вы правы. Вот только с тем что Notes для Скрипта, а не Скрипт для Нотеса -- не соглашусь.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 567
263
#20
TIA
ну если вспомнить "начало разговора" - там не было слов "Lotus Script"
было Lotus - что я интерпретировал как платформу LDN :)
C# - почти C++. Платформа - VS2008. Если бы не сложность C++ ничего принципиально бы не мешало его использовать для MS Office вместо VB
вот совсем не почти. C# - почти java, и то, что он позволяет нативные врезки (на асемблере) - скорее идиотизм (кот. лишает код тн "управляемости"), чем "правильная" практика. Не нужно смешивать понятия: языки в байткоде (так или иначе интерпретируемые ВМ) и нативный код

Вспомим ещё ассемблер и палку-копалку.
вы считаете процедурные языки отсталыми? ;) - не согласен категорически

может я название исказил...
functional programming languages
имел в виду http://en.wikipedia.org/wiki/Functional_language

напИшите мастабируемое, распределённое приложение на плюсах... и с архитекторой позволяющей плаги (на др. языках), - поговорим об отсталости ;)
и поругайте XSLT ;)

а так - см. сюда:
http://en.wikipedia.org/wiki/Erlang_%28pro...ing_language%29
http://en.wikipedia.org/wiki/CouchDB
http://couchdb.apache.org/