0
現在tuple
只是record
在SML,我想:記錄和元組之間的轉換?
上面我的代碼希望這個紀錄能接受一個元組,但它報告錯誤。
所以,沒有從元組到記錄和從記錄到元組的隱式轉換(雖然沒有發佈在這裏,我已經嘗試在本地實際上)。
我的問題是,爲什麼SML不提供這樣的轉換?(因爲這些轉換是在C相當頻繁++)
現在tuple
只是record
在SML,我想:記錄和元組之間的轉換?
上面我的代碼希望這個紀錄能接受一個元組,但它報告錯誤。
所以,沒有從元組到記錄和從記錄到元組的隱式轉換(雖然沒有發佈在這裏,我已經嘗試在本地實際上)。
我的問題是,爲什麼SML不提供這樣的轉換?(因爲這些轉換是在C相當頻繁++)
元組是記錄與會員到n命名爲1。也就是說,三元組元組(a, b, c)
確實是一個記錄{1 = a, 2 = b, 3 = c}
。所以不需要在元組和記錄之間進行隱式轉換,因爲它們已經是同一件事了。
現在你所定義的函數將一個成員x
,y
和z
記錄,並傳遞給它一個記錄與會員1
,2
和3
。這不起作用。爲此,需要在具有不同成員名稱的記錄之間進行隱式轉換,這似乎是一個非常糟糕的主意。
(因爲這些轉換是在C相當頻繁++)
有在C++無關結構或類具有不同成員(或甚至相同的構件)之間的隱式轉換。要做到這一點,你需要一個reinterpret_cast
(或在地址上投射出一個C風格的指針),這既不常見也不是一個好主意(除了POD類型之外,其他都不適用)。