私は最近、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)ファイルに対してアクセス修飾子を使用する傾向があります。それらはより用途が広いようです(たとえば、名前空間のモジュール/タイプに適用できます)が、署名ファイルがアクセス修飾子が提供しないものを提供する状況はありません。