質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Rust

Rustは、MoFoが支援するプログラミング言語。高速性を維持しつつも、メモリ管理を安全に行うことが可能な言語です。同じコンパイル言語であるC言語やC++では困難だったマルチスレッドを実装しやすく、並行性という点においても優れています。

Q&A

解決済

1回答

3712閲覧

バイト配列をVectorに追加したいのですが

vvvchrome

総合スコア19

Rust

Rustは、MoFoが支援するプログラミング言語。高速性を維持しつつも、メモリ管理を安全に行うことが可能な言語です。同じコンパイル言語であるC言語やC++では困難だったマルチスレッドを実装しやすく、並行性という点においても優れています。

0グッド

0クリップ

投稿2016/12/22 16:13

編集2016/12/23 05:32

状況に応じて配列の中身を変化させたいのでVectorを使おうとしているのですが、
Vectorでのバイト配列の扱い方が理解できていないため質問させて頂きます。

前回の質問を参考に作ったプログラム(IDのようなランダムな文字列を生成)を拡張しようとしています。

Rust

1extern crate rand; 2use rand::Rng; 3 4fn main(){ 5 let mut vec: Vec<char> = Vec::new(); 6 // let mut vec: Vec<&[u8]> = Vec::new(); こちらの方が良いのでしょうか? 7 8 // 本来ならmatchが入るが省略, Vectorに追加のみ 9 vec.push('a'); 10 vec.push('A'); 11 12 let mut rng = rand::thread_rng(); 13 14 let id: String = (0..8).map(|_| *rng.choose(&mut vec).unwrap()).collect(); 15 println!("{}", id)

このコードなら正常にa or Aからランダムに8文字取り出せるのですが、私はa-z, A-Zのようにしたいです。

Rust

1vec.push(b"abcdefghijklmnopqrstuvwxyz") 2vec.push(b"ABCDEFGHIJKLMNOPQRSTUVWXYZ")

のようなコードを書き、正常に動作させるには私はどのような修正をするべでしょうか?
バイト配列やVectorではなく〇〇でいいんじゃないかなどありましたらご教授願います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

Rust

1use std::io::Write; 2 3... 4... 5let mut vec: Vec<u8>... 6vec.write(b"abc").unwrap(); 7vec.write(b"ABC").unwrap();

writeで出来ました。

投稿2016/12/23 06:38

vvvchrome

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/03/01 14:00

write()でもよいですが、Vecのextend_from_slice(&[T])を使うとu8に限定せずに使えますしunwrap()も不要です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問