2025-01-01から1年間の記事一覧

【今日の一曲】Speamint - Were Going Out

www.youtube.com

Rust:Concise Control Flow with if let

Concise Control Flow with if let - The Rust Programming Language if let記法は、あるパターンにマッチした時だけハンドリングし、残りは無視するような時に使用できる。 match let config_max = Some(3u8); match config_max { Some(max) => println!("T…

Rust:The match Control Flow Construct

The match Control Flow Construct - The Rust Programming Language Rustにはmatchと呼ばれる、値をパターンに基づいて処理する強力な制御フロー構造がある。 パターンは、リテラル値、変数名、ワイルドカード、その他多くのもので構成することができる。 …

Rust:Defining an Enum

Defining an Enum - The Rust Programming Language 構造体は関連するフィールドとデータをグループ化する1つの方法である。 列挙型(enum)は取りうる値のセットを定義する。 enum IpAddrKind { V4, V6, } Enumの値 let four = IpAddrKind::V4; let six = IpA…

【今日の一曲】Pockets - I Won't Be There Anymore

www.youtube.com

Rust:Method Syntax

Method Syntax - The Rust Programming Language メソッドは関数に似ているが、以下の点が異なる 構造体、列挙型(enum)、トレイトオブジェクトの中に定義される 第1パラメータは常にself:メソッドを呼び出すインスタンスである メソッド定義 #[derive(Debug…

【今日の一曲】never young beach - 明るい未来

今日の一曲 Youtubeのおすすめで出てきた曲。 自分が知らない素敵な曲に出会えると、少しテンション上がる。 never young beach - 明るい未来 www.youtube.com never young beach - Wikipedia neveryoungbeach.jp

Rust:An Example Program Using Structs

An Example Program Using Structs - The Rust Programming Language 長方形の面積を求める関数 縦と横を引数にとる fn area(width: u32, height: u32) -> u32 { width * height } タプルでリファクタリング fn area(dimensions: (u32, u32)) -> u32 { dimen…

Rust:Defining and Instantiating Structs

Defining and Instantiating Structs - The Rust Programming Language 構造体はタプルと同様に、複数の異なる型を定義できる。 タプルと異なり、それぞれのデータに名前をつけることができる。 構造体を定義 struct User { active: bool, username: String,…

Rust:The Slice Type

The Slice Type - The Rust Programming Language スライスはコレクション全体の代わりに、連続した要素を参照することができる。 スライスは参照の一種で、所有権を持たない。 スライスを使用せず、文字数を返却 fn first_word(s: &String) -> usize { let …

Rust:References and Borrowing

References and Borrowing - The Rust Programming Language 参照はポインターのようなもので、他の変数が所有しているデータのアドレスを通して、データにアクセスすることができる。 関数の戻り値で所有権を返却する fn main() { let s1 = String::from("h…

Rust:What is Ownership?

What is Ownership? - The Rust Programming Language StackとHeap スタックは、last in, first outで固定長データ(コンパイル時にサイズが決定できる)を格納する。 ヒープは可変長データを格納し、pointerをスタックに格納する。 ヒープはpointer経由でデー…

oh! penelope

大学生の時、CDをジャケ買いしてヘビロテしてた、Oh! penelopeのalbum "Milk & Cookies" 今聞いても、マジ良い曲。 Amazon Musicでも聞けるなんて、なんだかんだ良い時代だと思う。 www.youtube.com www.youtube.com oh! penelope - Wikipedia 渡辺善太郎 - …

Rust:Control Flow

Control Flow - The Rust Programming Language if式 if 条件1 { } else if 条件2 { } else { } if式の条件はbool型でなければならない 条件に()は不要 let condition = true; let x = if condition { 5 } else { 6 }; ifは式のため、let文で値を代入するこ…

Rust:Comments

Comments - The Rust Programming Language // hello, world //で行コメント /* */でブロックコメント ドキュメンテーションコメントもあるがそれは、Chapter 14

Rust:Functions

Functions - The Rust Programming Language 関数 fn 関数名() { } //パラメータ付き fn 関数名(パラメータ名1: 型, パラメータ名2: 型, ...) { } //戻り値あり fn 関数名() -> 戻り値の型 { 戻り値 } 文と式 文:何らかのアクションを実行し、値を返さない…

Rust:Data Types

Data Types - The Rust Programming Language スカラー型(Scalar):4種類 整数型(Integer) 浮動小数点型(Floating-point) 真理値型(Boolean) 文字型(Character) Integer Overflow ランタイムエラーが発生した場合、debugモードでコンパイルした時はpanicを起…

Rust:Variables and Mutability

Variables and Mutability - The Rust Programming Language 変数 デフォルトではimmutable mutキーワードで、mutableにできる 定数(constant)との違い mutキーワードは使用不可 型アノテーションが必須 定数はどのスコープでも宣言可能 定数は定数式(const)…

Rust:Guessing Game

以下に従って、ハンズオン実施。 doc.rust-lang.org 標準入力から1行読み取る use std::io; fn main() { let mut input = String::new(); io::stdin().read_line(&mut input).expect("Failed to read line"); } 変数はデフォルトで不変(immutable)。可変(mu…

Rust:インストールからHello Worldまで

何か新しいこと始めようと思い、Rustに手を出してみた。 インストールとお約束のHello world。 公式ドキュメント通りにやれば、特につまずく事はなし。 www.rust-lang.org Homebrewでrustupをインストール brew install rustup .zhsrcにPATHを通す export PA…