如何寫程式來做等值的貨幣或是物品的數量換算? 2022 年 7 月 28 日 Magic Len 研究分享、 Java、 數學邏輯、 Rust、 JavaScript 不同國家有不同的貨幣流通,不同的貨幣也會有不同的價值。其實也不只貨幣,任何物品,無論實體的或是虛擬的都一樣,只要價值可以被衡量,就可以被等值換算。講到錢就傷感情,以蘋果和橘子來舉例好了,假設2顆蘋果等值於3粒橘子,那麼8顆蘋果就會等值於12粒橘子。 繼續閱讀
如何判斷兩個浮點數是否相等?是否能整除?相除後餘數是多少? 2022 年 7 月 21 日 Magic Len 研究分享、 Java、 Rust、 演算法、 JavaScript 使用電腦去進行浮點數運算的時候,在某些條件下會出現顯而易見的誤差,而這樣的誤差,就會導致與浮點數有關的計算或是邏輯判斷出現問題。 繼續閱讀
用 ShellCheck 來檢查 Shell 腳本有沒有什麼問題 2022 年 7 月 12 日 Magic Len Bash、 網站應用 在寫Bash或是其它Shell類型的腳本時,因為沒有編譯器的幫助,總是會寫得心驚肉跳,深怕在執行的時候哪行出現錯誤,或是隔了一段時間再回來看就發現看不懂以前的自己在寫什麼了。ShellCheck是一個開放原始碼的Shell腳本檢查工具,它可以找出腳本中語法錯誤,以及可能會出現的問題。 繼續閱讀
如何用Rust程式語言計算字詞數量? 2022 年 5 月 26 日 Magic Len Rust Rust的字串是使用UTF-8編碼的,如果直接使用「str」或是「String」的「len」方法,會得到UTF-8資料的位元組的數量,而非字元數。因為在UTF-8編碼下,一個字元不一定是一個位元組,例如「4」會被編碼成「[52]」;「ß」會被編碼成「[195, 159]」;「中」會被編碼成「[228, 184, 173]」;「𩸽」(ㄌㄨㄥˇ)會被編碼成「[240, 169, 184, 189]」。... 繼續閱讀
如何使用Rust程式語言一邊讀取UTF-8資料一邊進行驗證? 2022 年 5 月 19 日 Magic Len Rust 在進行軟體開發的時候,我們可能會需要讓程式從外部讀取UTF-8資料再轉成程式語言內建的字串型別。其實UTF-8資料不必在完全讀取完後才去驗證其正確性,一邊讀取一邊驗證才是比較有效率的作法。 繼續閱讀
如何使用Rust程式語言將字串安全地寫入網址中? 2022 年 5 月 17 日 Magic Len Rust 在進行軟體開發的時候,可能會需要將使用者輸入的資料插入至網址(URL)中,但URL能夠使用的字元是有限制的,錯誤格式的URL有機會使得HTTP客戶端在訪問URL資源時出現問題,也可能會導致透過URL來傳遞的參數有誤。為了讓URL可以傳遞任意字元的資料,對於不合法的字元,我們需要將其進行編碼。例如在網址的查詢(Query)部份(「?」之後的部份),如果要在查詢的參數值中使用「&」字元,就不能直接使用... 繼續閱讀
如何在Rust程式專案中安全地使用外部或是專案目錄下的檔案? 2022 年 5 月 12 日 Magic Len Rust 在開發程式的時候難免會需要在程式中引入外部的檔案,為了方便管理我們也常會將這些檔案放置在程式專案目錄下。然而在程式碼撰寫程式路徑於執行階段讀取檔案時,檔案路徑的正確性需要等到執行階段的時候才會知道,就算寫錯了而找不到這個檔案,程式專案也是能成功通過編譯,這就會使得程式在執行階段有出現問題的可能。 繼續閱讀
如何在Rust程式中處理HTTP協定的ETag? 2022 年 5 月 10 日 Magic Len Rust ETag是HTTP提供的快取機制,可以讓伺服器利用簡單的字串比對,來驗證客戶端先前快取到的HTTP回應是否依然有效。它的流程主要是這樣:伺服器在回應資料的同時,於HTTP回應標頭中夾帶「ETag」欄位,這個欄位的值就相當於這個資料的ID,而客戶端在將HTTP回應快取下來之後,若需重新發送請求時,就會在HTTP請求中夾帶「If-None-Match」欄位,將原先快取到的ETag值再回傳給伺服器,讓伺... 繼續閱讀
如何在Rust程式中判斷字元是不是中文、日文或韓文字元? 2020 年 11 月 17 日 Magic Len Rust 在處理Unicode字串的時候,CJK字元經常需要當作特例來處理。Rust的字串雖然是採用UTF-8編碼,但是它並沒有內建Unicode Block清單,無法查詢字元所屬的Unicode Block,也就不能判斷一個字元是不是中文、日文或韓文字元了。沒辦法,只能自己做啦! 繼續閱讀
如何在Rust程式中判斷兩個檔案的內容是否相同? 2020 年 11 月 12 日 Magic Len Rust 在開發程式尤其是撰寫測試或腳本的時候,有時會需要判斷兩個檔案的內容是否相同。可是由於檔案體積可能會很大,不可能直接把兩個檔案都整個讀進記憶體後再進行比對,所以要分段讀取。不過Rust的標準函式庫並沒有內建像這樣的比對檔案內容的功能,要另外實作才行。 繼續閱讀