是否有可能「擴展」F#編譯器以執行自定義編譯時字符串檢查?當我使用sprintf
等時,我正在考慮類似StringFormat
字符串的檢查。當我說「擴展」時,我並不意味着構建定製版本的編譯器,我的意思是使用現有的支持技術。自定義F#編譯器字符串檢查
關閉我的頭頂,你可能有一個RegexFormat
類型。您提供了正則表達式,編譯器將使用正則表達式進行靜態分析。例如。
//Setup RegexFormat with IP address regex and type abbreviation IpRegexFormat?
//Compile error. ipAddress expects IpRegexFormat!
let ip = ipAddress "192.168.banana.1"
如果沒有,也許這對我來說是一個:)類型提供商 - 如果整個事情是一個可怕的想法,讓我知道!
是的,這是可能的。不,不要這樣做。試着看看類型提供者是否爲你做。 –
很想聽到更多@RamonSnir。如何和爲什麼不! – bentayloruk
幾年前,我已經對F#做了幾處修改。雖然這很有趣,結果是更好的F# - 它需要時間,Visual Studio不支持它,而類型提供者可以完成大部分工作(免責聲明:我不喜歡類型提供者,沒有使用他們在幾周內)。 –