BYREF - Frage

Previous topic - Next topic

WPShadow

Hi!

Kurze allgemeine Frage: Ist es sinnvoll eine struktur folgendermaßen zu machen?

Code (glbasic) Select

FUNCTION main:
local bla
    window1(bla)
    PRINT bla, 0, 0
...
ENDFUNCTION


FUNCTION window1: BYREF bla
    window2(bla)
ENDFUNCTION

FUNCTION window2: BYREF bla
    bla = 5
ENDFUNCTION



Macht das so Sinn oder sollte man die Variablennamen zwischendurch abändern bzw. dort an andere lokale Variablen weiter geben? (bla --> (bla an bla2 übergeben) --> byref bla2 usw.

GLG

W.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Schranz0r

Macht keinen Sinn...
Zumindest für mich nicht, mach das ein paar hundert mal und du hast das totale Kaos.
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

WPShadow

Also macht es mehr Sinn die Werte mit verschiedenen Variablennamen zu übergeben, oder?
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Quentin

BYREF macht eigentlich nur dann Sinn, wenn du mehr als einen Funktionsparameter innerhalb der Funkion ändern willst. Bei nur einem Parameter nutze lieber RETURN

Code (glbasic) Select

FUNCTION main:
    LOCAL bla
    bla = window1(bla)
    ....
ENDFUNCTION

FUNCTION window1: bla
    RETURN window2(bla)
ENDFUNCTION

FUNCTION window2: bla
    RETURN 5
ENDFUNCTION


Instanzen von TYPEs oder ARRAYs werden ja eh standardmäßig BYREF übergeben, wenn ich das richtig in Erinnerung habe.

Schranz0r

I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Quentin

Instanzen von TYPEs auch ;)

Code (glbasic) Select

TYPE t_test
x; y
ENDTYPE

LOCAL s_test AS t_test


change_test(s_test)
PRINT "s_test.x: " + s_test.x, 0, 0
PRINT "s_test.y: " + s_test.y, 0, 20
SHOWSCREEN
KEYWAIT


FUNCTION change_test: p_test AS t_test
p_test.x = 5
p_test.y = 10
ENDFUNCTION

WPShadow

Ok, ich glaube, langsam bekomme ich ein bißchen Verständnis dafür! Die Vermutung zu verstehen ist noch nicht ganz kapiert, aber langsam vermute ich richtig zu verstehen...
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est