第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

靜態(tài)/動態(tài)與強/弱

靜態(tài)/動態(tài)與強/弱

我看到這些術語在編程中無處不在,我對它們的含義有一個模糊的概念。搜索顯示我實際上已經(jīng)在整個堆棧溢出中詢問了此類問題。據(jù)我所知,語言中的靜態(tài)/動態(tài)鍵入與強/弱鍵入有細微的區(qū)別,但是這種差異是我難以理解的。不同的來源似乎使用不同的含義,甚至可以互換使用這些術語。我找不到某個地方可以同時談論這兩者,并能說明差異。最好的是,如果有人可以在這里為我和世界其他地方清楚地說明這一點。
查看完整描述

3 回答

?
www說

TA貢獻1775條經(jīng)驗 獲得超8個贊

靜態(tài)/動態(tài)打字為約當類型信息被獲?。o論是在編譯時或在運行時)


強/弱鍵入是關于如何嚴格區(qū)分類型(例如,語言是否嘗試進行從字符串到數(shù)字的隱式轉換


查看完整回答
反對 回復 2019-11-04
?
千巷貓影

TA貢獻1829條經(jīng)驗 獲得超7個贊

您已經(jīng)發(fā)現(xiàn)業(yè)余愛好者用來談論編程語言的術語上的薄弱之處。 請勿使用“強”和“弱”類型的術語,因為它們在技術含義上尚未達成共識。相比之下,靜態(tài)類型化意味著在執(zhí)行程序之前先檢查程序,然后在啟動程序之前將其拒絕。 動態(tài)類型化意味著執(zhí)行過程中會檢查的類型,而類型錯誤的操作可能會導致程序停止運行或在運行時發(fā)出錯誤信號。靜態(tài)類型化的主要原因是要排除可能具有此類“動態(tài)類型錯誤”的程序。

強類型通常意味著類型系統(tǒng)中沒有漏洞,而弱類型意味著類型系統(tǒng)可以被顛覆(使任何保證無效)。這些術語經(jīng)常被錯誤地使用來表示靜態(tài)和動態(tài)類型。要了解它們之間的區(qū)別,請考慮一下C:在編譯時對語言進行類型檢查(靜態(tài)類型化),但是仍然存在很多漏洞。您幾乎可以將任何類型的值轉換為相同大小的另一類型-特別是,您可以自由地轉換指針類型。帕斯卡(Pascal)是一種旨在強力打字的語言,但著名的是無法預料的漏洞:沒有標簽的變體記錄。

強類型語言的實現(xiàn)通常會隨著時間的流逝而產(chǎn)生漏洞,因此,可以使用高級語言來實現(xiàn)部分運行時系統(tǒng)。例如,Objective Caml有一個稱為的函數(shù)Obj.magic,具有僅返回其參數(shù)的運行時效果,但是在編譯時,它將任何類型的值轉換為任何其他類型的值。我最喜歡的示例是Modula-3,其設計師將其稱為類型轉換構造LOOPHOLE。

話雖如此,您不能指望任何兩個人以完全相同的方式使用“強”和“弱”兩個詞。所以避免他們。



查看完整回答
反對 回復 2019-11-04
?
汪汪一只貓

TA貢獻1898條經(jīng)驗 獲得超8個贊

簡單地說就是這樣:在靜態(tài)類型語言中,類型是static,這意味著一旦將變量設置為類型,就無法更改它。那是因為類型是與變量關聯(lián)的,而不是變量所引用的值。


例如在Java中:


String str = "Hello";  //statically typed as string

str = 5;               //would throw an error since java is statically typed

而在動態(tài)類型語言中,類型是dynamic,這意味著在將變量設置為類型之后,可以對其進行更改。這是因為鍵入與值而不是變量相關聯(lián)。


例如在Python中:


str = "Hello" # it is a string

str = 5       # now it is an integer; perfectly OK

另一方面,某種語言中的強/弱鍵入與隱式類型轉換有關(部分取自@Dario的答案):


例如在Python中:


str = 5 + "hello" 

# would throw an error since it does not want to cast one type to the other implicitly. 

而在PHP中:


$str = 5 + "hello"; // equals 5 because "hello" is implicitly casted to 0 

// PHP is weakly typed, thus is a very forgiving language.

靜態(tài)類型允許在編譯時檢查類型正確性。通常編譯靜態(tài)類型的語言,并解釋動態(tài)類型的語言。因此,動態(tài)類型的語言可以在運行時檢查類型。



查看完整回答
反對 回復 2019-11-04
  • 3 回答
  • 0 關注
  • 494 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號