顯示具有 [程式語言]Rust 標籤的文章。 顯示所有文章
顯示具有 [程式語言]Rust 標籤的文章。 顯示所有文章

107.08.31 [Rust] cargo 使用多個 main 檔案

寫學習的程式時,若每一個 main 函式就要用 cargo new 新增專案的話不免有些浪費
所以就找到如何同時存在多個有 main 函式的檔案

e.g. 正常下用 cargo new 時檔案結構
$ cargo new mytest
$ cd mytest
$ tree .
mytest/
├── Cargo.toml
└── src
    └── main.rs

測試這個 main 時只需要用 cargo run 執行即可
cargo 會去找 src/lib.rs 或 src/main.rs 當作程式進入點的檔案

107.08.19 rust 之路 12 Struct

引頸企盼 (並沒有
這不就更新了嗎
該放起司的地方放起司,該放肉片的地方放肉片,再用左右大括號括起來,美味的 struct 完成了 (?
Photo by Pablo Merchán Montes on Unsplash

107.06.09 rust 之路 11 Slices

除了 borrow 還有一個方式可以避免拿到所有權,就是 slice
slice 也是 borrow 的一種,但是可以 borrow 連續結構(String、array、vector....)的片段
一片檸檬,一口茶,一個章節,一段時光
Photo by Joanna Kosinska on Unsplash

107.06.02 rust 之路 10 生命週期

哇,直接富堅超過半個月 QuQ

好了這應該是最後一個比較偏向觀念的地方

有一天,書與報紙只會剩下一個,我會希望的是我與報紙
因為我無法想像她一個人如何對抗孤獨
--- 呱吉                
Photo by Fabrizio Verrecchia on Unsplash

107.05.12 rust 之路 09 參考&借用

題外話,Rust 1.26.0 在 5/10 發布啦 OuO

借用 (Borrowing) 主要就是參考 (Reference) 概念的包裝
跟 C++ 的 reference 概念相同,差在寫法上
只不過我覺得 Rust 的寫法會讓程式碼要傳達的意思比較清楚

捲走你以為放得下的思念,然後又被海浪給還了回來
Photo by Spencer Watson on Unsplash


107.05.08 rust 之路 08 所有權

之所以重要是因為 Rust 的安全性主要就建構在這個概念上
而所有權 (Ownership) 又另外衍伸成其他兩個部分:Borrowing、Lifetimes
不過這篇就只提所有權,不然會超多
理論上這幾篇都是理論課 @@

我擁有你,你擁有我,最微妙的關係
Photo by frank mckenna on Unsplash

107.05.06 rust 之路 07 流程控制

Rust 的,應該說大部分語言的流程控制都相近
我盡量簡單帶過重複的部分 OuO

人生像充滿迴圈,每個迴圈又是不斷的選擇,一天,一年,一生
Photo by Patrick McManaman on Unsplash

107.05.06 rust 之路 06 函式

來了 Function OuO
其實前面已經用很多次啦
不過還是有些概念和寫法需要補充

植物是函式,蜜蜂是函式;接受別人的付出後再給予回饋
Photo by Danilo Batista on Unsplash

107.05.05 rust 之路 05 型別

注意 Rust 為靜態語言 (static typing) 所以在編譯時期變數型別必須已知
但是又不需要囉嗦的每個都寫說是什麼型別,因為 Rust 有 Type inference 會自動推論

Rust 的資料型別有兩大類:純量 (Scalar)、複合型 (Compound)
純量有整數 (Integer)、浮點數 (Floating-Point)、Boolean、字元 (Character)
複合型有 tuple、陣列 (Array)
萬物形色多樣,卻又同由固定的基本元素構成,是型態構成型態?
Photo by Jeremy Thomas on Unsplash

107.05.05 rust 之路 04 變數

來了久等了,終於度過偏爆炸的一個禮拜 OuO
(明明就超過一個禮拜

這次主題應該偏簡單
會介紹變數 (Variable)、常數 (Constant)、Static Variable、Shadowing (遮蔽)

相對於地上的我們,天上星星的存在是接近永恆不變的
變與不變的道理....請參考前赤壁賦 (不要玩古文x
Photo by John Fowler on Unsplash

107.04.24 rust 之路 03 Cargo

Cargo 是 Rust 的專案管理神器
它可以幫你產生專案、編譯專案、下載專案的相依套件
再搭配 crates.io (Rust 社群的 package registry) 根本超方便 OuO

cargo 我查字典是貨物,而 crate 是貨箱,恩....好像有什麼感覺又沒有 OuO
Photo by chuttersnap on Unsplash

107.04.21 rust 之路 02 Hello World

就來第一個程式啦 OuO

之後講解的環境應該都是 win10 (作業系統) + cygwin (shell) + vim (編輯器)
Hello World
Photo by NASA on Unsplash

107.04.17 rust 之路 01 環境建置

Rust 支援的平台超多
基本上 mac、windows、linux 的 32、64 位元都有 std、rustc、cargo 全支援
完整版列表:Rust Platform Support

我覺得官方提供安裝流程很簡單 Install Rust
本篇只會有兩種環境建置過程 (因為我沒 mac

107.04.15 rust 之路 00 語言介紹

首先,這裡的 Rust 是一種程式語言,不是 steam 上的遊戲 @@
道路應該要沒有盡頭,就像學習,以此自勉能持續
Photo by Amanda Sandlin on Unsplash

106.10.12 rust 字串處理

輸入String
使用 text_io (真心覺得這個很好用,可不只用在字串
在 Cargo.toml 的 [dependencies] 下方加上
text_io = "0.1.6"

main.rs的最上方記得加上
#[macro_use] extern crate text_io;

再來就可以用類似 C 的方式輸入
let s: String;
scan!("{}\n", s);


106.07.19 cygwin+vim+rust

總之就是 vim 當編輯器
Cygwin 當編譯、執行環境
那 Rust 也是剛看到,有點興趣OuO
https://www.rust-lang.org/en-US/install.html


106.07.19 rust error: linking with `link.exe` failed: exit code: 1

錯誤訊息:

error: linking with `link.exe` failed: exit code: 1
  |
  = note: "link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "hello.0.o" "/OUT:hello.exe" "/OPT:REF,NOICF" "/DEBUG" "/LIBPATH:C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-0a78323911070f99.rlib" "C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librand-c279a51d66700350.rlib" "C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcollections-d7bf31a4ca1ea637.rlib" "C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_unicode-d367c3ba0db49600.rlib" "C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-2d4bf02140c11dcb.rlib" "C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-add7a84d7e82d084.rlib" "C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-84688accbc86d6b7.rlib" "C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-fe2e68b21f0bdd7a.rlib" "C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc_system-7fc0381594c93f56.rlib" "C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-ea9d77e7c23fe65c.rlib" "C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-91b619d34dd1f5aa.rlib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "shell32.lib" "msvcrt.lib"
  = note: /usr/bin/link: 出現多餘的參數 ‘/LIBPATH:C:\\Users\\user\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib’
          Try '/usr/bin/link --help' for more information.


error: aborting due to previous error
^ Top