如何用Rust程式語言來呼叫Unix-like作業系統內建的「bc」指令? 2019 年 2 月 17 日 Magic Len Rust 「bc」是Linux作業系統內建用來進行任意精度計算的指令,可以透過撰寫簡單且類似C語言的數學腳本來計算數學。例如輸入「scale=4;9/8」,可以得到「1.1250」的輸出。在Rust程式語言中,也可以利用「bc」來協助我們計算複雜的數學。 繼續閱讀
如何用Rust程式語言進行中文數字的轉換? 2019 年 2 月 9 日 Magic Len Rust 「中文數字」是中文的數字表示方式,例如「123」,可以表示為「一百二十三」。中文數字如同英文字母一樣有區分大小寫,例如「123」的中文數字小寫為「一百二十三」,大寫則為「壹佰貳拾參」。至於單位則有個、十、百、千、萬、億、兆、京等等,相同單位的數量級也並非只有一種,而是分為下數、萬進、中數和上數這主要四種系統。中文數字是老祖宗的智慧,但對於現在的數位系統來說並不怎麼合適,還是得經過轉換才行。那麼要如... 繼續閱讀
如何將Rust程式的Log訊息輸出成Log檔? 2019 年 2 月 7 日 Magic Len Rust 在開發程式的時候,經常會需要使用「Log」或是「Console」等類別輸出某些文字訊息來告訴系統管理員程式執行的狀況。當程式作為背景服務來運行的時候,通常會將這些Log訊息寫進檔案系統內,方便日後查閱。然而,儲存在檔案系統中的每則文字訊息雖然可能只是短短的幾行字,但累積久了也是會佔用不少硬碟空間,如果沒有定期整理的話,可能哪天系統的可用空間就被歷史紀錄塞滿,而導致當機。為了避免程式輸出的訊息塞滿硬... 繼續閱讀
如何在Rust程式語言中實現西曆和農曆的轉換?如何計算八字重量? 2019 年 1 月 28 日 Magic Len Rust 中國的農曆同時考慮到月球繞行地球與地球繞行太陽的情形,不像西曆那樣有著明顯的規律,雖然農曆本身的干支年是60年循環一次,但是每個年份在每次循環中,所含的各個月份之天數有可能是不一樣的,甚至連該年有沒有閏月,有閏月的話是閏幾月也都不能固定,單講哪個干支年也無法確定究竟是第幾次循環的,因此通常還會搭配其它曆法或是紀年法來使用,現在的話當然就是搭配西曆來用啦! 繼續閱讀
如何在MSYS2中編譯Rust程式? 2018 年 12 月 16 日 Magic Len 研究分享、 Rust Windows作業系統中的Rust程式,預設會使用MSVC來編譯的。但是如果Rust程式有使用到GNU相關的函式庫(例如GTK)時,就得搭配MinGW來編譯了。MSYS2是一套整合MinGW和POSIX環境的工具,可以在Windows作業系統上模擬出Linux作業系統的開發環境,且能利用MinGW直接編譯出在Windows作業系統上執行的程式。 繼續閱讀
在Windows安裝MSYS2,讓Windows也能使用GNU的軟體開發工具 2018 年 12 月 14 日 Magic Len Linux、 C & C++、 Windows、 軟體介紹 GNU是一個Unix-like的作業系統,經常與Linux核心搭配在一起(GNU/Linux即為一般我們所說的「Linux作業系統」)。有許多軟體開發的程式都是運作在GNU的環境中,無法直接在Windows作業系統中使用,就得依靠如Cygwin和MinGW(Minimalist GNU for Windows)等軟體在Windows作業系統中,建立出GNU程式的開發環境。嚴格來說,Cygwin和M... 繼續閱讀
擴充Rust程式語言內建的HashMap,讓它擁有階層結構 2018 年 12 月 9 日 Magic Len Rust 在開發程式時,我們常會使用HashMap來儲存key-value結構的資料。但很多時候我們的key-value資料會有不只一層,例如一個男女分班的學校,我們就需要有性別、班級、學號這三層的key-value結構,以確保各層的資料不會有重複的情況發生。或是可以分成國家、一級行政區、二級行政區等多層資料的世界地圖。 繼續閱讀
如何讓Writer能在不同執行緒下同步寫入,且能夠拿回擁有權?實作同步版本的RcWriter吧! 2018 年 12 月 3 日 Magic Len 研究分享、 Rust 在之前關於「RcWriter」的文章中,我們將Rc智慧型指標和「Writer」一同連用,讓「Writer」的擁有權在被其他套件搶走之後還可以有辦法繼續使用同樣的「Writer」。但如果是在並發與並行的程式中,「RcWriter」就無用武之地了。 繼續閱讀
Writer的擁有權被拿走後要怎麼拿回來?用Rc智慧型指標來製作RcWriter吧! 2018 年 12 月 1 日 Magic Len 研究分享、 Rust 在開發Rust程式的時候,會使用到各式各樣別人開發的套件。這些套件雖然很方便,可以替我們節省不少開發時間,但是套件提供的API,卻不一定能夠完全滿足我們的需求。「Writer」的擁有權被取走,就是一個常見的例子。 繼續閱讀
如何使用Rust程式語言取得WHOIS資料? 2018 年 11 月 28 日 Magic Len Rust WHOIS是網際網路中用來查詢網域名稱和IP的服務,可以讓我們在連結到對方的伺服器前,先行確認對方究竟是誰(沒錯,就是Who is ...?),避免連線到不安全的伺服器。在開發Rust程式的時候,也可以利用WHOIS來做對外連線的檢查。 繼續閱讀