2016-04-29 62 views
3

haxe函數具有一些我想要使用的默認值的參數,所以我不需要導入任何東西(它們是下面的基本類型)。如果它們是參數順序中的最後一個,那麼我可以放棄而不包括它們。但他們是第一個,在一些默認值之前,想要覆蓋。在本機上使用默認功能參數

我不允許將它們置爲原生狀態。 _不能編譯(我不認爲這是爲了這個上下文。)我是否被強制導入和複製逐字的默認值,還是有另一種方式?

我試過.bind(_, ...)()但是這給了Usage of _ is not supported for optional non-nullable arguments

回答

2

該錯誤來自參數具有非nullable類型(Int,FloatBool在靜態目標上)。如果這個函數是你的代碼的一部分,而不是某個庫,你可以用Null<T>?來使其爲空。

只要參數是空的,也HAXE讓您只需跳過他們是否distuingishable(即通過一定是你想跳過一個(或多個)不同的值的類型)。這意味着您不必使用bind()或明確地通過null。請參閱手冊Optional Arguments頁面上的第四個示例。

如果在這種情況下使參數不可用,那麼您可能需要複製默認值(儘管我確信可以爲此提供一個聰明的宏解決方案)。

+0

我忘了你可以簡單地跳過它們。謝謝! (它們是庫的一部分。) – Kev

+0

除了...這種技術使得編譯器給出相同的'不能跳過Flash上​​的非空參數',即使它在CPP上工作。 – Kev