DSA Milkshake 키캡 리뷰

디자이너 biip의 DSA Milkshake 키캡 리뷰입니다.
새하얀 키캡에 파스텔톤의 포인트 키캡이 매력적인 Milkshake 키캡입니다. 제가 구매한 DSA 외에도 대중적인 Cherry Milkshake 또한 존재합니다. 다만 저는 알파벳이 정 중앙에 각인된걸 좋아해서 DSA로 선택하였습니다.
디자이너 biip의 DSA Milkshake 키캡 리뷰입니다.
새하얀 키캡에 파스텔톤의 포인트 키캡이 매력적인 Milkshake 키캡입니다. 제가 구매한 DSA 외에도 대중적인 Cherry Milkshake 또한 존재합니다. 다만 저는 알파벳이 정 중앙에 각인된걸 좋아해서 DSA로 선택하였습니다.
Finally the last topic of the Rustlings!
I honestly didn’t thought writing solutions would take this long. But finally I’ve made it!
Kudos to me!
You may find solution code for the topic from my repo.
If you are having difficulties with the exercise, please check below references:
You may find solution code for the topic from my repo.
Rust offers a multitude of ways to
convert
a value of a given type into another type.
The simplest form of type conversion is a type cast expression. It is denoted with the binary operatoras
.
For instance,println!("{}", 1 + 1.0);
would not compile, since1
is an integer while1.0
is a float. However,println!("{}", 1 as f32 + 1.0)
should compile. The exerciseusing_as
tries to cover this.Rust also offers traits that facilitate type conversions upon implementation. These traits can be found under the
convert
module. The traits are the following:
From
andInto
covered infrom_into
TryFrom
andTryInto
covered intry_from_into
AsRef
andAsMut
covered inas_ref_mut
ld both compile and run without panicking. These should be the main ways within the standard library to convert data into your desired types.
You may find solution code for the topic from my repo.
The Clippy tool is a collection of lints to analyze your code so you can catch common mistakes and improve your Rust code.
If you used the installation script for Rustlings, Clippy should be already installed. If not you can install it manually viarustup component add clippy
.
You may find solution code for the topic from my repo.
Rust’s macro system is very powerful, but also kind of difficult to wrap your head around. We’re not going to teach you how to write your own fully-featured macros. Instead, we’ll show you how to use and create them.
You may find solution code for the topic from my repo.
In most current operating systems, an executed program’s code is run in a process, and the operating system manages multiple processes at once. Within your program, you can also have independent parts that run simultaneously. The features that run these independent parts are called threads.
You may find solution code for the topic from my repo.
This section will teach you about Box, Shared-State Concurrency and Iterators.
You may find solution code for the topic from my repo.
Tests are Rust functions that verify that the non-test code is functioning in the expected manner. The bodies of test functions typically perform these three actions:
- Set up any needed data or state.
- Run the code you want to test.
- Assert the results are what you expect.
Let’s look at the features Rust provides specifically for writing tests that take these actions, which include the test attribute, a few macros, and the should_panic attribute.
You may find solution code for the topic from my repo.
A trait tells the Rust compiler about functionality a particular type has and can share with other types. We can use traits to define shared behavior in an abstract way. We can use trait bounds to specify that a generic type can be any type that has certain behavior.
Traits are similar to a feature often called interfaces in other languages, although with some differences.
trait
is one of the most important Rust feature that you must be familiar with. There are so many trait
that Rust provides. Such as Clone
, Copy
, Debug
, Default
, Deref
, From
, Ord
etc.
Sometimes you can use Derive macros macro, or sometimes you have to implement trait by yourself. Unfortunately, rustling only focuses on the basic usage of the trait rather than introducing Rust providing traits. So if you want to know more about common traits, I suggest you to read blog article.
You may find solution code for the topic from my repo.