Hat AHK v1 benannte funktionen? Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
google
Posts: 30
Joined: 16 Nov 2022, 17:19

Hat AHK v1 benannte funktionen?

Post by google » 16 Dec 2023, 12:50

Hallo zusammen,

ich habe eine umfangreiche Bibliothek in AHK. Da einige Funktionen viele Argumente haben, frage ich mich, ob AHK benannte Funktionen unterstützt. Zum Beispiel:

Code: Select all

#Singleinstance Force

MsgBox, % test(5, c:="$")

test(a, b:=19, c:="€"){
return % a * b . c
}

Danke

just me
Posts: 9576
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Hat AHK v1 benannte funktionen?

Post by just me » 16 Dec 2023, 17:01

Moin, Du meinst wohl: benannte Funktionsparameter. Es sollte nicht so schwierig sein, das einfach zu probieren.

User avatar
google
Posts: 30
Joined: 16 Nov 2022, 17:19

Re: Hat AHK v1 benannte funktionen?

Post by google » 16 Dec 2023, 17:57

Moin!

Natürlich, du hast recht!
Als ich versuchte, mein einfaches Code-Snippet umzusetzen, hat es leider nicht funktioniert. Daher gehe ich davon aus, dass entweder ein Fehler meinerseits vorliegt oder dass AutoHotKey die Funktionen möglicherweise nicht implementiert hat.

User avatar
flyingDman
Posts: 2848
Joined: 29 Sep 2013, 19:01

Re: Hat AHK v1 benannte funktionen?

Post by flyingDman » 16 Dec 2023, 18:31

Code: Select all

MsgBox, % test(5, , c:="$")

test(a, b:=19, c:="€"){
return % a * b . c
}
14.3 & 1.3.7

User avatar
google
Posts: 30
Joined: 16 Nov 2022, 17:19

Re: Hat AHK v1 benannte funktionen?

Post by google » 16 Dec 2023, 18:41

Moin,
Danke, @flyingDman, aber das wusste ich bereits.

Mir geht es darum, dass ich hier eine Lib vorliegen habe, bei der ich manchmal sieben Parameter eingeben muss. Aufgrund der vielen Kommas komme ich gelegentlich durcheinander. Die Idee war, unabhängig von der Reihenfolge einfach "benannte Argumente" zu nutzen.

ntepa
Posts: 439
Joined: 19 Oct 2022, 20:52

Re: Hat AHK v1 benannte funktionen?  Topic is solved

Post by ntepa » 17 Dec 2023, 03:58

Code: Select all

MsgBox, % test({a:5, c:"$"}*)

test(a, b:=19, c:="€"){
return % a * b . c
}
I learned it from here: https://www.autohotkey.com/board/topic/62504-variadic-functions/#entry394636

User avatar
google
Posts: 30
Joined: 16 Nov 2022, 17:19

Re: Hat AHK v1 benannte funktionen?

Post by google » 17 Dec 2023, 07:30

Vielen Dank! Es funktioniert wunderbar!
Aber gehe ich richtig in der Annahme, dass dies nicht in der Doku beschrieben wird?

@ntepa
Thank you!
But am I correct in assuming that this is not docu?

gregster
Posts: 9113
Joined: 30 Sep 2013, 06:48

Re: Hat AHK v1 benannte funktionen?

Post by gregster » 17 Dec 2023, 07:39

google wrote:
17 Dec 2023, 07:30
Vielen Dank! Es funktioniert wunderbar!
Aber gehe ich richtig in der Annahme, dass dies nicht in der Doku beschrieben wird?
Es wird zwar bei den variadischen Funktionsaufrufen erwähnt, aber nicht explizit mit Beispiel-Code gezeigt:
https://ahkde.github.io/docs/v1/Functions.htm#VariadicCall wrote:Während variadische Funktionen eine variable Anzahl von Parametern akzeptieren, kann ein Array von Parametern an eine beliebige Funktion übergeben werden, indem die gleiche Syntax auf einen Funktionsaufruf angewendet wird:

Code: Select all

TeilZketten := ["eins", "zwei", "drei"]
MsgBox % Verbinden("`n", TeilZketten*)
Hinweise:
[...]
* Das Array von Parametern kann benannte Elemente enthalten, wenn eine benutzerdefinierte Funktion aufgerufen wird; in allen anderen Fällen werden benannte Elemente nicht unterstützt.
English Docs: https://www.autohotkey.com/docs/v1/Functions.htm#VariadicCall

User avatar
google
Posts: 30
Joined: 16 Nov 2022, 17:19

Re: Hat AHK v1 benannte funktionen?

Post by google » 17 Dec 2023, 08:00

@gregster
vielen Dank!
Nach mehrmaligem Durchlesen ist bei mir endlich der Groschen gefallen.
Allerdings wäre ich allein nie darauf gekommen.

Post Reply

Return to “Ich brauche Hilfe”