パイプ std::Child構造体は実行中の子プロセスを表します。stdin、stdout、stderrを介して表面化のプロセスとのやり取りを仲介します。 use std::error::Error; use std::io::prelude::*; use std::process::{Command, Stdio}; static PANGRAM: &'static str = "the quick brown fox jumped over the lazy dog\n"; fn main() { // Spawn the `wc` command // `wc`コマンドを起動する。 let process = match Command::new("wc") .stdin(Stdio::piped()) .stdout(Stdio::piped()) .spawn() { Err(
高度な関数とクロージャ 最後に関数とクロージャに関連する高度な機能の一部を探究し、これには関数ポインタとクロージャの返却が含まれます。 関数ポインタ クロージャを関数に渡す方法について語りました; 普通の関数を関数に渡すこともできるのです! 新しいクロージャを定義するのではなく、既に定義した関数を渡したい時にこのテクニックは有用です。 これを関数ポインタで行うと、関数を引数として他の関数に渡して使用できます。関数は、型fn(小文字のfです)に型強制されます。 Fnクロージャトレイトと混同すべきではありません。fn型は、関数ポインタと呼ばれます。 引数が関数ポインタであると指定する記法は、クロージャのものと似ています。リスト19-35のように。 ファイル名: src/main.rs fn add_one(x: i32) -> i32 { x + 1 } fn do_twice(f: fn(i
パターン記法 本全体で、多くの種類のパターンの例を見かけてきました。この節では、パターンで合法な記法全てを集め、 それぞれを使用したくなる可能性がある理由について議論します。 リテラルにマッチする 第6章で目撃したように、パターンを直接リテラルに合致させられます。以下のコードが例を挙げています: #![allow(unused)] fn main() { let x = 1; match x { 1 => println!("one"), // 1 2 => println!("two"), // 2 3 => println!("three"), // 3 _ => println!("anything"), // なんでも } } このコードは、xの値が1なので、oneを出力します。この記法は、コードが特定の具体的な値を得た時に行動を起こしてほしい時に有用です。 名前付き変数にマッチす
Rust 裏本 高度で危険な Rust Programming のための闇の技法 NOTE: この文書はドラフトです。重大な間違いを含んでいるかもしれません。 私に与えられたのは、望んだようなプログラムではなく、身を震わせるような暗黒と言い表せないような孤独であった。そして私はついに、誰ひとり口にしようともしなかった恐ろしい真実、ささやくことすらできない神秘中の神秘を目にしたのだ。石のように硬く、耳障りな音をたてるこの言語は、ロンドンが古きロンドンではなく、パリが古きパリではないように、Rust の御代をとこしえにするものではなく、実はきわめて危険で、不完全に防腐処理された、だらしなく寝そべった死体だったのだ。そこにはコンパイル時に生まれた奇妙な生き物たちが所在なさげに蔓延っていた。 (訳注: H.P. ラヴクラフトの小説「あの男」のパロディのようです。) この本は、危険な Rust プロ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く