回答編集履歴

2

誤字を修正しました。(ライフテイム → ライフタイム)

2021/04/03 12:10

投稿

tatsuya6502
tatsuya6502

スコア2055

test CHANGED
@@ -1,4 +1,4 @@
1
- 標準ライブラリーの `Result<T, E>` 型は`T`と`E`という2つのジェネリックな型引数を持ちます。`Result<usize, &'static str>`なら、`T`の実引数が`usize`型、`E`の実引数が`&'static str`型になります。
1
+ 標準ライブラリーの`Result<T, E>`型は`T`と`E`という2つのジェネリックな型引数を持ちます。`Result<usize, &'static str>`なら、`T`の実引数が`usize`型、`E`の実引数が`&'static str`型になります。
2
2
 
3
3
 
4
4
 
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- 次に`'static`について説明します。このように`'`で始まるものはライフイム注釈です。これは参照やスライスに求めるライフタイム(生存期間)を指定するためのものです。
15
+ 次に`'static`について説明します。このように`'`で始まるものはライフイム注釈です。これは参照やスライスに求めるライフタイム(生存期間)を指定するためのものです。
16
16
 
17
17
 
18
18
 

1

わかりやすさのために、語句を少し追加しました。

2021/04/03 12:10

投稿

tatsuya6502
tatsuya6502

スコア2055

test CHANGED
@@ -1,8 +1,8 @@
1
- 標準ライブラリーの `Result<T, E>` 型は`T`と`E`という2つのジェネリックな型引数を持ちます。`Result<usize, &'static str>`なら、`T`の実引数が`usize`、`E`の実引数が`&'static str`になります。
1
+ 標準ライブラリーの `Result<T, E>` 型は`T`と`E`という2つのジェネリックな型引数を持ちます。`Result<usize, &'static str>`なら、`T`の実引数が`usize`、`E`の実引数が`&'static str`になります。
2
2
 
3
3
 
4
4
 
5
- `&'static str`の`&'static`が何なのかについてですが、まず`&`の部分について説明します。`&`は参照またはスライスで、`&str`なら`str`を指す(不変の)スライスを意味します。`str`は文字列で、より正確にいうとUTF-8形式のバイト列を表します。`str`はスライスとしてしかアクセスできないので、ほとんどの場合、その型を`&str`(UTF-8バイト列への不変スライス)または`&mut str`(UTF-8バイト列への可変スライス)のように表します。参照とスライスについては、以下の日本語ドキュメントで詳しく解説されています。
5
+ `&'static str`の`&'static`が何なのかについてですが、まず`&`の部分について説明します。`&`は参照またはスライスで、`&str`なら`str`型の値を指す(不変の)スライスを意味します。`str`は文字列型の一種で、より正確にいうとUTF-8形式のバイト列を表します。`str`はスライスを通さないとアクセスできないので、ほとんどの場合、その型を`&str`(UTF-8バイト列への不変スライス)または`&mut str`(UTF-8バイト列への可変スライス)のように表します。参照とスライスについては、以下の日本語ドキュメントで詳しく解説されています。
6
6
 
7
7
 
8
8
 
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- 次に`'static`のように`'`で始まるものはライフテイム注釈です。これは参照やスライスに求めるライフタイム(生存期間)を指定するためのものです。
15
+ 次に`'static`について説明します。このように`'`で始まるものはライフテイム注釈です。これは参照やスライスに求めるライフタイム(生存期間)を指定するためのものです。
16
16
 
17
17
 
18
18
 
@@ -72,4 +72,4 @@
72
72
 
73
73
 
74
74
 
75
- ご質問のコードの引数型は`bool`で、これには`&`がついていません。そのため、戻り値型を`&str`にしたいときは`&'static str`にする必要があります。`"error message"`のような文字列リテラルは静的に存在するため`'static`なライフタイムを持ち、うまくコンパイルできます。
75
+ ご質問のコードの引数型は`bool`で、これには`&`がついていません。そのため、戻り値型を`&str`にしたいときは`&'static str`にする必要があります。`"error message"`のような文字列リテラルは静的に存在するため`'static`なライフタイムを持ち、戻り値型と型が合のでコンパイルできます。