Code Fix

中級byte index is not a char boundary パニックの原因と直し方 › パターン1

byte index is not a char boundary パニックの原因と直し方

Rustの文字列はUTF-8のバイト列として保持されており、日本語のようなマルチバイト文字の途中の位置でスライスしようとするとパニックします。

 1  fn main() {
 2      let s = String::from("こんにちは");
 3      let slice = &s[0.._];
                          ^
 4      println!("{}", slice);
 5  }
thread 'main' panicked at main.rs:3:19: byte index 1 is not a char boundary; it is inside 'こ' (bytes 0..3) of `こんにちは`

空欄を埋めて実行を通す

広告
広告スロット(未設定)

byte index is not a char boundary パニックの原因と直し方

文字単位で扱いたい場合はcharsなどのイテレータを使う必要があります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)