실수의 문자열 표현을 실수 유형으로 변환하고 싶습니다. 나는 Real.fromString("5.5")
을 할 수 있지만 실제 타입을 반환하지는 않는다는 것을 알고 있지만, 다른 어떤 실제와 곱하거나 더할 수없는 실제 옵션 타입을 반환합니다.SML에서 문자열을 실수로 변환
1
A
답변
4
패턴 일치 또는 Option 구조의 함수 중 하나를 사용하여 옵션에서 값을 추출합니다. 예를 들어 :
- val x = Real.fromString("5.5");
> val x = SOME 5.5 : real option
- Option.getOpt(x, 0.0);
> val it = 5.5 : real
3
마이클 J. 이발사의 대답에 추가하려면, 옵션 유형은 일부 뭔가, 또는 NONE 중 하나 인 대수 데이터 형식입니다.
보통, ML에서 우리는 일반적으로 패턴 매칭과 대수 데이터 유형을 해체 :
case Real.fromString "5.5" of SOME x => x + 1.0
| NONE => 42.0;
당신은 마이클 J. 이발사 제안처럼 getOpt
을 사용할 수 있습니다 (실제로 getOpt
이후 Option.
이 리면에 필요하지 않습니다 레벨 환경), 위의 간단한 버전입니다. 당신이 (이 NONE이없는 경우 오류 것이다), 당신은 valOf
을 사용할 수있는 일부가 될 것입니다 있는지 확인하는 경우
또는 :
- val x = Real.fromString "5.5";
val x = SOME 5.5 : real option
- valOf x;
val it = 5.5 : real
또는 당신은 멀리 그것을 패턴과 일치 할 수 val
(val
도 하나의 브랜치가 있지만 패턴 일치입니다.) :
- val SOME x = Real.fromString "5.5";
> val x = 5.5 : real