Frage zu func() Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

effel
Posts: 548
Joined: 16 Jan 2018, 13:34

Frage zu func()

27 Nov 2023, 15:20

Guten Abend,
ist global die einzige Möglichkeit wenn ich die Variable test leeren möchte?

Code: Select all

msgbox % test() ; 1
msgbox % test() ; 2
msgbox % test() ; 3
msgbox % test() ; 4
test := 0
msgbox % test() ; 1
test() {
global  test
test++
return test
}
just me
Posts: 9530
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Frage zu func()  Topic is solved

28 Nov 2023, 04:25

Moin @effel,

in Deinem Beispiel brauchst Du global test nicht nur, um die Variable test auch außerhalb der Funktion ändern zu können. Ohne global würde die Funktion immer nur 1 liefern, weil test am Funktionsende als lokale Variable immer gelöscht werden würde.

Wenn Du eine nicht-globale Variable nutzen willst, würde ich folgendes Konstrukt vorschlagen;

Code: Select all

msgbox % test() ; 1
msgbox % test() ; 2
msgbox % test() ; 3
msgbox % test() ; 4
msgbox % test(True) ; 1

Test(Init := False) {
	Static Test:= 0
	If Init
		Test := 0
	Return ++Test
	; alternativ (Ternary):
	; Return (Init ? Test := 1 : ++Test)
}

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 15 guests