2
爲什麼看起來F#參數的順序很重要?它對於C#來說並不重要(它使用相同的編譯模型)。當我試試這個:F#命令行文件順序?
# main.fs
module Main
let main = Printer.print_repeatedly 5 "hello, world"
# printer.fs
module Printer
let print_repeatedly n str = for x in 1..n do printfn "%s" str
我執行編譯器(包括微軟和Mono的)與main.fs前printer.fs,我得到一個錯誤:
main.fs(4,12): error FS0039: The namespace or module 'Printer' is not defined
如果我做printer.fs在命令行的main.fs之前,沒關係。編譯器是否需要這個用於F#的原因?
更不用說它大大簡化了依賴管理,這是大型項目的氪石。 – Daniel
我已經使用C++了很多。我只是覺得奇怪,考慮到F#似乎大多遵循C#類型風格的編譯模型,除了這個小小的警告。 –
@Jonathan - 我認爲F#和C#共享一個通用編譯模型的程度,它們都被CLI綁定。我可以想到兩者之間的一些重大差異,除此之外,C#支持隱式接口實現,並且它是推薦的「默認」,F#僅支持顯式接口實現。 F#在C#中不支持公共靜態只讀字段。 F#不支持在C#中密封重寫的成員。等等。 –