強資料型別和弱資料型別
強型別定義語言
一種總是強制型別定義的語言。Java和Python是強制型別定義的。如果你有一個整數,如果不顯示地進行轉換,你不能將其視為一個字串
弱型別定義語言
一種型別可以被忽略的語言,與強型別定義相反。VBScript是弱型別定義的。在VBScript中,可以將字串
'12 ' 和整數
3 進行連線得到字串
'123 ',然後可以把它看成整數
123,而不需要顯示轉換。
C++ 是強型別語言,因為你定義了一個整型變數後,就不能付一個字元型資料給這個變數(除非你用強制型別轉換)像VB,PHP,這些語言, 就屬於弱型別語言,因為你使用一個變數,可以不經過定義。 而且當你付不同型別資料給這個變數, 也不會編譯出錯,而且是允許這樣做的。
C#中
int i=3; i="a"; 不可以
javaScript中
var i=3; i="a"; 可以
強型別是在編譯的時候就確定型別的資料,在執行時型別不能更改,而弱型別在執行的時候才會確定型別。沒有好不好,二者各有好處,強型別安全,因為它事先已經確定好了,而且效率高。弱型別更靈活,但是效率低,而且出錯概率高
C#是強型別語言,通俗地講,便是指C#中的“變數”在開發時的型別便是明確的:String便是String,Int32就是Int32,毫無爭議。強型別的好處有很多
能夠享受程式碼提示功能
能夠獲得重構工具的支援
能夠在編譯期發現更多錯誤
不過C#也不是“絕對”的強型別語言,因為它也有弱型別,那就是Object。我們知道Object是所有型別的最終基類,任何型別的物件都可以使用Object來引用。可是一旦轉化成Object的變數之後,程式碼提示便消失了;即使我們“明確”物件的確切型別,也必須通過Cast才能使用——更何況它形成了一種被“濫用”或“誤用”的機會。例如一段錯誤程式碼可能會傳入一個不符合約定型別的物件,那麼就會造成錯誤。更嚴重的是,這樣的錯誤可能只要在“執行時”才能被發現,編譯器對此無能為力。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25897606/viewspace-754691/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- js資料型別之基本資料型別和引用資料型別JS資料型別
- 區別值型別資料和引用型別資料型別
- JAVA中基本資料型別和引用資料型別Java資料型別
- 強型別語言變數和資料型別的理解變數資料型別
- 資料型別: 資料型別有哪些?資料型別
- PHP 資料型別之檢視和判斷資料型別PHP資料型別
- 資料型別,型別轉換資料型別
- Java 資料型別和 MySql 資料型別對應一覽表JavaMySQL 資料型別
- 資料型別資料型別
- 3. php資料型別、資料型別轉換PHP資料型別
- 資料型別和運算子資料型別
- 基本資料型別與字串型別資料型別字串
- 淺談程式語言型別的強型別,弱型別,動態型別,靜態型別型別
- 簡單資料型別和引用資料型別對應棧和堆示意圖資料型別
- MySQL基礎之----資料型別篇(常用資料型別)MySql資料型別
- Java中的基本資料型別與引用資料型別Java資料型別
- JS專題之資料型別和型別檢測JS資料型別
- JavaScript - 資料型別JavaScript資料型別
- Symbol資料型別Symbol資料型別
- 資料型別2資料型別
- JavaScript 資料型別JavaScript資料型別
- js資料型別JS資料型別
- TypeScript資料型別TypeScript資料型別
- Oracle 資料型別Oracle資料型別
- SQL 資料型別SQL資料型別
- NumPy 資料型別資料型別
- php資料型別PHP資料型別
- numpy資料型別資料型別
- JavaScript資料型別JavaScript資料型別
- 一、資料型別資料型別
- [Mysql]資料型別MySql資料型別
- MySQL資料型別MySql資料型別
- go 資料型別Go資料型別
- 基本資料型別資料型別
- Python資料型別Python資料型別
- Java資料型別Java資料型別
- MYSQL 資料型別MySQL 資料型別
- Sqlite—資料型別SQLite資料型別
- Redis資料型別Redis資料型別