類型轉換
外觀
在計算機科學,特別是在程式語言中,類型轉換(英語:type conversion)指將數據從一種類型轉換到另一種類型的過程。一個簡單的例子是將整數轉換成浮點數。
分類和例子
[編輯]類型轉換包括顯式指定被轉換到的類型的顯式轉換(explicit cast)(或稱鑄型(cast)),以及與之相對的隱式轉換(implicit conversion)。其中,後者在一些語言中也被稱為強制(coercion),被認為是一種特設多態機制。因為翻譯不準確等原因,這兩者之間的對應常被混淆。例如,C語言中的顯式類型轉換被誤作為「強制轉換」,這是技術上不正確的(事實上C語言的規範中完全沒有「強制」的說法,但明確地有顯式和隱式轉換)。
一些語言中可能同時提供這些不同形式的典型的類型轉換,以及其它的可能和上下文相關的類型轉換,例如ISO C++的std::is_convertible使用的「轉換」 (頁面存檔備份,存於互聯網檔案館),既不是類似C語言的cast notation (頁面存檔備份,存於互聯網檔案館)或前綴的轉換操作符形式 (頁面存檔備份,存於互聯網檔案館)的顯式轉換,也不是標準轉換 (頁面存檔備份,存於互聯網檔案館)這樣的隱式轉換。
外部連結
[編輯]- Casting in ABAP (頁面存檔備份,存於互聯網檔案館)
- Casting in Ada (頁面存檔備份,存於互聯網檔案館)
- Casting in C++
- C++ Reference Guide Why I hate C++ Cast Operators, by Danny Kalev
- Casting in Java (頁面存檔備份,存於互聯網檔案館)
- Implicit Conversions in C# (頁面存檔備份,存於互聯網檔案館)
- Implicit Type Casting at Cppreference.com (頁面存檔備份,存於互聯網檔案館)
- Static and Reinterpretation castings in C++ (頁面存檔備份,存於互聯網檔案館)
- Upcasting and Downcasting in F#