2017-11-23 1 views
0

모든 모듈에서 반복하지 않아도되는 빈번한 가져 오기가 있다고 가정합니다. 대신에 호출 할 수있는 "빈번한 가져 오기"를 지정하는 방법이 있습니까? 예를 들어, 뭔가 같은 : 대신 개별적으로 모든 수입을 다시 입력해야하는 그런자주 가져 오기 방법을 사용하여 라이브러리 모듈 가져 오기

module frequentImports = 
    open System 
    open System.IO 
    ... 

의 frequentImports 모듈 대신 호출 할 수 있습니다. 분명히, 위의 접근 방식은 왜 나를 위해 작동하지 않습니다 질문입니다.

감사합니다.

답변

2

open 문의 그룹과 같은 것을 정의한 다음 그룹을 참조 할 방법이 없습니다. 일반적으로 파일 당 한 번만 모든 open 문을 사용해야합니다.

당신이 항상 반복하고 싶어하는 요소가 너무 많다는 사실은 코드 조직이 최적이 아니라고 제안 할 수 있습니다. 논리적으로 관련된 것들을 단일 파일에 넣어 구조화 된 코드가 있다면, 각 파일마다 다른 가져 오기가 필요합니다.

당신이 할 수있는 한 가지 - 내가 그다지 좋지 않다고 생각 하긴하지만 - 모듈로 모듈을 정의하고 일반적으로 필요한 것에 대한 별칭을 입력 할 수 있다는 것입니다.

내가 개방 Microsoft.FSharp.ReflectionSystem.Collections.Generic을 피하고자한다면

말, 내가 필요로하는 것들에 대한 별명을 가진 모듈 정의 할 수 있습니다 :

module MyThings = 
    type Dictionary<'k,'v> = System.Collections.Generic.Dictionary<'k, 'v> 
    type FSharpType = Microsoft.FSharp.Reflection.FSharpType 
    type FSharpValue = Microsoft.FSharp.Reflection.FSharpValue 

지금 open MyThings을 사용하여 나에게 세 가지 유형의 액세스 (및이를 제공 모듈에서도 작동합니다). 즉, 이것은 모든 정의를 자동으로 가져 오지는 않습니다. 아마이 일을할만한 가치가 없을 것이라고 생각합니다. 그러나 옵션입니다.