編程語言里的靜態(tài)、動態(tài)、強類型、弱類型等概念介紹
對于動態(tài)語言與靜態(tài)語言的區(qū)分,套用一句流行的話就是:Static typing when possible, dynamic typing when needed。
“動”或“靜”,強調(diào)的是實施類型的時間,編譯里就要確定類型的是靜態(tài)類型,比如C/C++/JAVA/C#,運行時才實施類型的則是動態(tài)類型,比如VB/Python。
而“強”或“弱”剛強調(diào)實施類型的強度,強類型的語言,如C++等,變量的類型不可隨意轉(zhuǎn)換;而弱類型的語言,變量的類型可以隨需要任意轉(zhuǎn)換,而且通常都是隱式的。
靜態(tài)類型語言是指在編譯時變量的數(shù)據(jù)類型即可確定的語言,多數(shù)靜態(tài)類型語言要求在使用變量之前必須聲明數(shù)據(jù)類型,某些具有類型推導能力的現(xiàn)代語言可能能夠部分減輕這個要求.
動態(tài)類型語言是在運行時確定數(shù)據(jù)類型的語言。變量使用之前不需要類型聲明,通常變量的類型是被賦值的那個值的類型。
強類型語言是一旦變量的類型被確定,就不能轉(zhuǎn)化的語言。實際上所謂的貌似轉(zhuǎn)化,都是通過中間變量來達到,原本的變量的類型肯定是沒有變化的。
弱類型語言則反之,一個變量的類型是由其應用上下文確定的。比如語言直接支持字符串和整數(shù)可以直接用 + 號搞定。當然,在支持運算符重載的強類型語言中也能通過外部實現(xiàn)的方式在形式上做到這一點,不過這個是完全不一樣的內(nèi)涵
通常的說,java/python都算是強類型的,而VB/Perl/C都是弱類型的.
不過相比于動態(tài)/靜態(tài)語言的分類,強類型/弱類型更多的是一個相對的概念。
相關文章
超好用的免費內(nèi)網(wǎng)穿透工具【永久免費不限制流量】
對于開發(fā)人員來講,演示內(nèi)網(wǎng)web站點、本地開發(fā)微信公眾號、小程序開發(fā)、調(diào)試第三方支付系統(tǒng)對接等開發(fā)環(huán)境,往往需要一個環(huán)境可以進行調(diào)試,市面上內(nèi)網(wǎng)穿透工具有很多,這里推薦一款簡單又好用的cpolar,可以永久免費使用,不限制流量,支持http/https/tcp協(xié)議2022-09-09大數(shù)據(jù)HelloWorld-Flink實現(xiàn)WordCount
這篇文章主要介紹了大數(shù)據(jù)HelloWorld-Flink實現(xiàn)WordCount的相關知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08http請求405錯誤方法不被允許的解決 (Method not allowed)
這篇文章主要介紹了http請求405錯誤方法不被允許的解決 (Method not allowed),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12