Re: [問題] 請問關於強型態的定義的問題

看板Programming作者 (我正在想要換什麼)時間7年前 (2017/01/20 16:07), 編輯推噓3(308)
留言11則, 3人參與, 最新討論串2/2 (看更多)
不是很確定你看的是哪一本書 不過在 Programming language 的定義上是這樣: 型別檢查 (type checking): 檢查變數的型別,避免對變數做出不符合其型別的操作 (ex 使用不合法的運算或取用不存在的物件成員) 強型別 (strong type-checking): compiler / interpreter 永遠會進行型別檢查,目前大部分主流程式語言都屬於強型別,包括 Java、C#、Python、JavaScript 弱型別 (weak type-checking): compiler / interpreter 允許在某些情況下略過型別檢查,可能會造成未定義行為 (undefined behavior),如 assembly、C/C++ 靜態型別 (static type-checking): 在 compile-time 進行型別檢查,如 Java、C# 動態型別 (dynamic type-checking): 在 runtime 進行型別檢查,如 Python、JavaScript 許多靜態型別語言仍然會保留部分動態型別的特性,比如說 RTTI 或是 reflection 都算是動態型別檢查的應用。 ----- Sent from JPTT on my Sony F8332. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.32.97 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1484899664.A.8FC.html

02/19 08:27, , 1F
Nice,不過Javascript應該是屬於弱型別喔(
02/19 08:27, 1F

02/19 08:28, , 2F
經測試1+"2"可以成立)。記得Java再某些特
02/19 08:28, 2F

02/19 08:29, , 3F
定情況也像C一樣會自動轉換
02/19 08:29, 3F

02/19 08:31, , 4F
(Java在維基同時標記為強行別和弱行別)
02/19 08:31, 4F

03/04 02:11, , 5F
強與弱並不是用是否自動轉換來區分的
03/04 02:11, 5F

03/04 02:12, , 6F
而是「有沒有做型別檢查」
03/04 02:12, 6F

03/04 02:13, , 7F
請參考拙作 https://goo.gl/Hxe6WI
03/04 02:13, 7F

03/31 18:39, , 8F
在推一次,我覺得以自動轉換比較好辨別XD
03/31 18:39, 8F

03/31 18:39, , 9F
案自己對編/直譯器了解,不可能對資料型
03/31 18:39, 9F

04/02 13:16, , 10F
如果是有規則的自動轉換還是算強型別,如
04/02 13:16, 10F

04/02 13:16, , 11F
果是沒規定的隨便轉才算是弱型別
04/02 13:16, 11F
文章代碼(AID): #1OWSLGZy (Programming)
文章代碼(AID): #1OWSLGZy (Programming)