1) Jak przekonwertować z jednego typu Int
na typ Num
?Konwersja typu Int
Podobne pytania zadawano wcześniej, a odpowiedź brzmi (tak jak na wiki Haskella) jest użycie fromIntegral
. fromIntegral
zwraca typ Num
, więc muszę go przesłać do żądanego formatu.
muszę wziąć Word16
i przekształcić go w Int64
tak robie następujące
let valueLength = (fromIntegral(tagLength) :: Int64)
gdzie tagLength
ma typ Word16
Czy tego podejścia są prawidłowe?
2) W jaki sposób można bezpiecznie obsługiwać konwersję typu?
Jadąc od tła Java, gdzie jest dla liczb całkowitych wierzę Short
, Int
i Long
mogę użyć short
jako int
ale nie na odwrót. W Haskell choć jeśli piszę
256 :: Word8
w ghci
zwraca 0.