我最近一直在努力学习F#的面向对象的方面,并已成为好奇如何限制访问类型/模块的语言。
更具体地讲,我想知道写这之间的区别:
Example.fsi
module Stack =
val foo : string
Example.fs
module Stack =
let foo = "foo"
let bar = "bar"
还或者这样:
module Stack =
let foo = "foo"
let private bar = "bar"
难道他们不完成准确到底是一回事吗? 从C#背景的,我非常倾向于只是在签名使用访问修饰符(FSI)的文件。 他们似乎更灵活(可应用到模块/类型的命名空间,例如),而我没有在签名文件提供访问修饰符做不是任何情况。