저는 최근에 F #의 객체 지향 측면을 배우려고 노력했으며 언어에서 유형/모듈에 대한 액세스를 제한하는 방법에 대해 궁금해졌습니다. 다른 방법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) 파일에 대한 액세스 한정자를 사용하는 편이 낫습니다. 그들은 시그니처 파일이 접근 수정 자 (modifier)가 제공하지 않는 어떤 것을 제공하지 않는 반면, 그들은 더 다재다능한 것 같습니다 (예를 들어 네임 스페이스의 모듈/유형에 적용 할 수 있습니다).
예가 어쨌든 작동하지 않아야합니다 .-) (foo _ = "bar"라고합시다.) – Dario
왜 작동하지 않아야합니까? 이 예제는 나를 위해 잘 컴파일됩니다. – Noldorin
.fsi는 foo를 함수로 선언하지만 .fs는이를 값으로 정의합니다. – Brian