F#에서 C# 구조체를 초기화하시나요?
문제
F#에서 사용하려는 간단한 C# 구조체가 있습니다.
public struct Stat : IEquatable<Stat>
{
public ulong st_dev;
public long st_blocks;
}
내가 찾은 방식은 너무 C#적이고 변경 가능하다고 느껴집니다.
stbuf <- new Stat()
stbuf.st_blocks <- 0
stbuf.st_dev <- 1
C#에서는 nice를 사용할 수 있다는 점은 말할 것도 없습니다. new Stat { st_blocks = 0, st_dev = 1 }
구문 설탕...
이제 F#으로 변환되었으므로 할당 연산자에 알레르기가 생기기 시작했습니다. <-
, 그렇다면 이를 개선할 수 있는 방법은 없을까요?
해결책
생성자에서 속성이나 변경 가능한 필드를 설정하는 구문은 다음과 같습니다.
stbuf <- Stat(st_blocks = 0L, st_dev = 1UL)
필요하지 않습니다. new
일반적으로 권장되는 점을 제외하면 F#에서는 IDisposable
것들.또한 적절한 유형의 리터럴을 지정하는 데 필요한 접미사에 유의하세요.
제휴하지 않습니다 StackOverflow