[格言] プログラマーの格言

看板NIHONGO (日語板)作者 (タシロス・シェン)時間17年前 (2008/12/11 14:43), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串64/77 (看更多)
分からないときは Integer より Currency. Currency より Variant. 安全第一.      (VBプログラマーより) ※註解 Integer,Currency,Variant都是 Visual Basci 裡面的變數種類。 變數,是程式裡面用來記憶資料的東西,但是電腦跟人腦並不相同, 所以電腦在記憶資料的時候,方式也跟人腦不同。 比方說要記憶圓周率"3.14159265"好了, 人類在記憶的時候,不需要去意識他到底是文字,還是數字。 但是電腦就不同了,電腦需要靠編寫程式的人的指示, 來判定這一串東西到底是數字還是文字, 編寫程式的人如果想將這東西指定為文字, 那他就得替電腦申請一個專門放文字用的變數, 將資料記憶到此變數裡面, 反之,如果想將這東西指定為數字, 那就需要申請數字專用的變數, 在電腦的世界裡面,這種指定是最基本, 卻也是很重要的動作。 變數的種類根據程式語言而不同, 不同類型的變數如上述,由於可以存放不同種類的資訊, 因此所需要的記憶體與所能接受的資料的範圍也不同。 (在此不多敘述,解釋下去可能得寫個好幾篇= = ) 當某個變數所能接受的資料的範圍越小, 所消耗的記憶體就越小,處理速度也會越快。 因此在編寫程式的時候,最正確的做法是, 選擇最適合的變數來使用。 但是這卻不是最安全的方法, 因為程式在運作的時候, 是無法預測是否會出現超過那個變數能接受的範圍的資料出現, 一旦某個資料超過那個變數能接受的範圍的時候, 程式的運作就會出現問題, 而這種最基本的問題, 往往就是帶來大災害的禍根。 在 Visual Basic 裡面,上述出現的三個變數, 所能接受的資料的範圍,最大的為 Variant,再來是 Currency, 最小的是 Integer。 Variant 可以講是萬能的變數,使用此變數就有如人腦在記憶資訊一般, 不用去意識到底現在要放的資訊是文字還是數字,雖然很方便, 但是程式運作上面會比較慢,而且會消耗的記憶體比較多。 Currency 本來是拿來操作貨幣用的變數,不過由於可以接受的資訊的範圍很廣, 因此被拿來操作廣範圍的數字。 Integer 為最基礎的變數之一,能接受的資訊範圍比較狹窄, 但是卻很節省記憶體,處理上又迅速,算是 C/P 值很高的變數。 如果以"有效率"的觀點來看的話, 選用最適合的變數來使用是最正確的方法, 但是你必須要去擔心萬一資訊的範圍超過變數能接受的範圍的時候, 所帶來的問題。 而以"最安全"的觀點來看的話, 選用最萬能的變數來使用是最好的方法, 因為你不需要去擔心資訊的範圍超過變數能接受的範圍的問題, 不過所有地方都使用萬能型變數的話, 可能程式會變的很大而且很烏龜... 題外話,聽說 Variant 很惹人討厭, 有沒有 Visual Basic 的專家可以提供點八卦阿? 我只知道用習慣 JAVA 跟 C++ 的變數以後, 會覺得 C 的變數很討厭而已XD -- ████ ◥◤ ◢ ████ ████ ◥◤ ◢ ◣ █ █ █ █ █ ◢◤ █ ███ ◥◤ █ ◤◥◣█ ◥◤ █ █ █ ◢◤◣ ◥◤ █ █ █ ◢◤ ◢██◤ ████ ◢◤ █ ◢██◤ ███ ◢██◤ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 133.78.190.65

12/11 15:12, , 1F
話說以前作業我常常就直接抓最大的來算…||
12/11 15:12, 1F

12/11 17:46, , 2F
有疑惑時 Currency 勝過 Integer,Variant 又勝 Currency,
12/11 17:46, 2F

12/11 17:46, , 3F
小心為上。(其實我跳過今天的說明了||||)
12/11 17:46, 3F

12/11 19:26, , 4F
用Var會很吃效能(Performance)的原因, 是因為變數內容
12/11 19:26, 4F

12/11 19:27, , 5F
無法固定一種型態, 無法為它做最適合的計算方法
12/11 19:27, 5F

12/11 19:27, , 6F
另外, 在每次讀取這個VAR型變數都要檢查實際內容的型態
12/11 19:27, 6F

12/11 19:28, , 7F
間接消耗掉效能, 這個部份佔愈多就愈吃資源及效能
12/11 19:28, 7F

12/11 19:29, , 8F
而Currency的話, 古早的程式設計師是用Integer去計算
12/11 19:29, 8F

12/11 19:30, , 9F
最小位數的部份... 元以下的角, 分, 毫, 從毫開始算...
12/11 19:30, 9F
文章代碼(AID): #19GBQhf7 (NIHONGO)
討論串 (同標題文章)
文章代碼(AID): #19GBQhf7 (NIHONGO)