Учебник раздел "Byval и Byref или снова о функциях" сказано что строки передаются по ссылке, если это не то что надо по добавляем Byval. Мои эксперименты со структурами и массивами показали что и там все передается по ссылке. Со структурой Byval прошел как надо а вот с массивом не получается. Вот пример без Byval
Sub foo ( a() As UByte ) For i As UByte = 0 To 2 a(i)=i*10 Next
End Sub Dim a(2) As UByte={1,2,3} For i As UByte = 0 To 2 Print a(i) Next foo (a()) For i As UByte = 0 To 2 Print a(i) Next sleep
Куда подставить Byval что б всетаки добится передачи по значению? Спасибо
Массивы в FB всегда передаются только по ссылке (Byref). В реале , если очень нужно такое , можно реализовать вручную через временный динамический массив. То есть перед отправкой в процедуру, копируешь данные во временный массив, а перед выходом из процедуры его очищаешь. Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
Я так понимаю и константный массив создать тоже нельзя?
То есть ? Массив, который инициализируется при объявлении и потом его ячейки изменить нельзя? Если это, то можно:
Dim i(5) As Const Integer = {0,1,2,3,4,5} Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…