Function Signatur definieren?
Übersicht

![]() |
UNZBetreff: Function Signatur definieren? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ich glaube zwar nicht, dass das geht, aber vllt. irre ich mich ja ![]() Ich möchte Function Pointer abstrahieren. Z.B. Code: [AUSKLAPPEN] Function abc(callback(a:Int, b:Float)) callback(1,5) End Function Function xyz(callback(a:Int, b:Float)) callback(1,5) End Function Die Signatur (d.h. (a:Int, b:Float)) möchte ich gerne nur einmal definieren und dann referenzieren. Code: [AUSKLAPPEN] Signature callbackSig=(a:Int, b:Float) Function abc(callback:callbackSig) callback(1,5) End Function Function xyz(callback:callbackSig) callback(1,5) End Function Die Syntax ist natürlich Mist, aber ich denke, man sieht, was gemeint ist ![]() Sowas ist mit BMax nicht möglicht, oder? |
||
Das muss besser als perfekt! |
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das wäre ein Typen-Alias und ist in BlitzMax nicht in der Form möglich. Es ist allerdings sehr gut möglich, diese Abstraktion mit objektorientierter Programmierung durchzuführen. BlitzMax: [AUSKLAPPEN] Type TCallback Wenn man aber OOP benutzt, sollte man das vielleicht konsequenter tun und statt Funktionspointern Interfaces oder (in BlitzMax) abstrakte Klassen benutzen. ZEVS |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man sieht natürlich den Sinn dahinter, aber soweit ich informiert bin, gibt es das gar nicht. Mich persönlich stört es ja bereits, dass man Bezeichner angeben muss (a:Int, b:Float) statt einfach (:Int, :Float) oder so. Denn die Namen interessieren ja niemanden.
Jedenfalls ist mir das Syntaxelement, das du suchst, noch nie untergekommen (also weder Dokumentation noch fremde Quelltexte). BlitzMax ist halt teilweise mühsam, auch wenn es andererseits vieles vereinfacht ![]() |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group