2012-01-24 85 views
6

我是SML的新手,正在使用SMLNJ方言。在SML中進行類型轉換

出於某種目的,我一直試圖強調3到3.0(int爲真實)。

找不到出路。我怎樣才能做到這一點?我怎樣才能在類型之間轉換?

+0

沒關係,我找到了答案。 例如,您只需輸入'real(2)',將2(int)轉換爲2.0(實數)。 – Dave

回答

12

您可以使用功能real(或Real.fromInt)將int轉換爲real

有關更多信息,請參閱頂級環境here中的可用功能列表以及基礎庫here的概述。

+0

太棒了,我認爲這是深刻的;)。 int和real是2種不同的類型,SML不能從'int'類型轉換爲'real'。 – suhao399

5

SML沒有類型轉換。類型之間的任何映射都需要通過函數完成。

real(3)的外觀和行爲非常像C風格的類型轉換,但real: int -> real只是標準基礎中的另一個功能。另一方面,int(3.0)不起作用,因爲int函數不存在。

通常,當您需要在類型之間進行轉換時,您只需挖掘該庫以獲取適當的功能。在real -> int的情況下,只需在top level environment中搜索「real - > int」即可得到round,trunc,floorceil