summaryrefslogtreecommitdiff
path: root/public/post
diff options
context:
space:
mode:
authorgarhve <git@garhve.com>2023-01-12 19:13:20 +0800
committergarhve <git@garhve.com>2023-01-12 19:13:20 +0800
commitd743c344988884c81e247a0ab9c2696912d8a1e3 (patch)
tree962d14b12459f0725dc81b43514c984c7285b6c1 /public/post
parent2a9ade7cf6080d1649dbd0a03de61f3387325ae9 (diff)
first half of the first rust note
Diffstat (limited to 'public/post')
-rw-r--r--public/post/index.html28
-rw-r--r--public/post/no-problemo/index.html4
-rw-r--r--public/post/rust-basic/index.html107
3 files changed, 137 insertions, 2 deletions
diff --git a/public/post/index.html b/public/post/index.html
index 44f11a4..51cc3e5 100644
--- a/public/post/index.html
+++ b/public/post/index.html
@@ -35,6 +35,34 @@
+ <h3>2023 </h3>
+
+
+ <p>
+ <div class="date">
+ 2023-01-12
+ </div>
+
+ <div class="title">
+ <a href="https://blog.garhve.com/post/rust-basic/">rust basic -- types and ownership</a>
+ </div>
+
+ <div class="taxonomies_index">
+
+
+ &emsp;<a href="https://blog.garhve.com/categories/code/">/code</a>
+
+
+
+
+
+ &emsp;<a href="https://blog.garhve.com/tags/rust/">#rust</a>
+
+
+ </div>
+ </p>
+
+
<h3>2022 </h3>
diff --git a/public/post/no-problemo/index.html b/public/post/no-problemo/index.html
index cb80737..3742499 100644
--- a/public/post/no-problemo/index.html
+++ b/public/post/no-problemo/index.html
@@ -55,9 +55,9 @@
<p>My feeling to express are fading... Not sure how I know it, just got this sense.</p>
<p>Recently, I picked up an anime named &quot;<a href="https://en.wikipedia.org/wiki/The_Simpsons">The Simpsons</a>&quot; which I watched first episode back in highschool.
This first time was not gave me too much impression.
-but I fell in love with it right after re-watched first episode! So I downloaded the series up to 17.(33 in total but I'm not in rush)
+but I fell in love with it right after re-watched first episode! So I downloaded the half of the whole series.
<img src="https://assets.garhve.com/pictures/screenshots/2022/12/ob8AFE.png" alt="simpson tv list" /></p>
-<p>It double</p>
+<p>The anime is just about </p>
</p>
diff --git a/public/post/rust-basic/index.html b/public/post/rust-basic/index.html
new file mode 100644
index 0000000..262aee3
--- /dev/null
+++ b/public/post/rust-basic/index.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="utf-8">
+
+<title>rust basic -- types and ownership | garhve&#x27;s gibberish</title>
+
+
+ <link rel="shortcut icon" type="image/png" href="&#x2F;images&#x2F;favicon.png">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+
+ <link id="stylesheet" rel="stylesheet" type="text/css" href="/dark.css">
+
+ <script type="text/javascript" src="/js/theme.js"></script>
+
+</head>
+
+<div class="header">
+ <div class="site_title">
+ <p><a href="/"><img src="https:&#x2F;&#x2F;blog.garhve.com&#x2F;images&#x2F;logo.png" alt="garhve&#x27;s gibberish"
+ width="70" height=auto></a></p>
+ <p><a href="/">&nbsp;garhve&#x27;s gibberish</a></p>
+ </div>
+ <div class="menu">
+ <!-- <a href="/tags">tags</a>
+ &nbsp;--><a href="/categories">categories</a>
+ </div>
+</div>
+
+<body onload="getTheme()">
+ <section class="section">
+ <div class="container">
+
+<p>
+ <div class="title_postpage">rust basic -- types and ownership</div>
+</p>
+<p>
+ <div class="date_postpage">2023-01-12</div>
+ <div class="taxonomies_postpage">
+
+
+ <a href="https://blog.garhve.com/categories/code/">/code</a>
+
+
+
+
+ &emsp;<a href="https://blog.garhve.com/tags/rust/">#rust</a>
+
+
+ </div>
+</p>
+
+<p>
+ <h2 id="types">Types</h2>
+<blockquote>
+<p>This is a summary of rust basic knowledge I learned from (Rust the Book)[https://doc.rust-lang.org/book/] chapter 1 ~ chapter 13
+I will use C to compare with since I familiar it.</p>
+</blockquote>
+<p>There are a bunch of built-in types we can work with: <em>scalar types</em> and <em>compound types</em>.
+Those scalar types are just alike as C language.
+| scalar types | rust | c |
+| ------------- |------------- | ------- |
+| integer | i(u)8/i16/i32<default>/i64 | (unsigned) char/short/int/long |
+| float | f32/f64<default> | float/double |
+| boolean | true/false | True/False (non-zero/zero) |
+| character | char | char |</p>
+<p>The compound types are a bit different. rust provides many hands-on types where C type is not the same or needs to define explicitly.</p>
+<table><thead><tr><th>compound type</th><th>rust</th><th>c</th></tr></thead><tbody>
+<tr><td>struct</td><td>same</td><td>same</td></tr>
+<tr><td>enum</td><td>enum element can be seen as key that could take value</td><td>represent numberic value, default starting from 0</td></tr>
+<tr><td>array</td><td>vector</td><td>array</td></tr>
+<tr><td>string</td><td>a wraper of vector</td><td>pointer of char *</td></tr>
+<tr><td>tuple</td><td>exist</td><td>no such type in C</td></tr>
+</tbody></table>
+<p>Variable declaration in rust is kinda tricky.</p>
+<p>A normal declare syntax would be like <code>let unmutable_variable = 3</code>. This will imply that variable is <code>i32</code> type
+since the value we assign to is a integer and the default type for integer on most OS is <code>i32</code>.
+We can explicit type by using type annotation: <code>let unmutable_variable: u8 = 3</code>. This will make variable
+<code>unmutable_variable</code> is <code>u8</code> type and has 3 as its value. We need to assign a value
+to variable if we don't annotate type while declaration, otherwise compiler would prompt error.</p>
+<p>Notice that, declaration as above one won't allow us to change value, if we want to be able to change variable's
+value at runtime, we need to explicit it, for security reason: </p>
+<pre data-lang="rust" style="background-color:#2e3440;color:#d8dee9;" class="language-rust "><code class="language-rust" data-lang="rust"><span style="color:#81a1c1;">let mut</span><span> mutable_variable </span><span style="color:#81a1c1;">= </span><span style="color:#b48ead;">3</span><span style="color:#eceff4;">;
+</span><span>println!(</span><span style="color:#a3be8c;">&quot;first define: </span><span style="color:#ebcb8b;">{mutable_variable}</span><span style="color:#a3be8c;">&quot;</span><span>)</span><span style="color:#eceff4;">;
+</span><span>mutable_variable </span><span style="color:#81a1c1;">= </span><span style="color:#b48ead;">5</span><span style="color:#eceff4;">;
+</span><span>
+</span><span>println!(</span><span style="color:#a3be8c;">&quot;change value to: </span><span style="color:#ebcb8b;">{mutable_variable}</span><span style="color:#a3be8c;">&quot;</span><span>)</span><span style="color:#eceff4;">;
+</span></code></pre>
+<blockquote>
+<p><code>println!()</code> is called macro, which would not cover for now.</p>
+</blockquote>
+
+</p>
+
+
+
+
+ </div>
+ </section>
+</body>
+
+<div class="footer">
+ &emsp;&copy; garhve
+</div>
+
+</html>