回答編集履歴
1
補足を追加しました
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
Rust では、レシーバを変更するかどうかは、メソッド名の慣習ではなく、メソッドの型シグネチャで示します。コンパイラにより検査されますので、破壊的メソッドを、そうと知らずに使うことはできません。
|
5
|
+
Rust では、レシーバを変更するかどうかは、メソッド名の慣習ではなく、メソッドの型シグネチャで示します。コンパイラにより検査されますので、**破壊的メソッドを、そうと知らずに使うことはできません。**
|
6
6
|
|
7
7
|
|
8
8
|
|
@@ -79,3 +79,13 @@
|
|
79
79
|
|
80
80
|
|
81
81
|
これにより、`push_str()` が破壊的メソッドであることを、うっかり知らずに使ってしまうことが防げます。
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
---
|
86
|
+
|
87
|
+
**補足**
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
上の例で、`println!("{}", s1);` のように、`!` が付いているものがありますが、その意味は、Ruby のそれとは全く異なります。これは、`println!()` が、関数やメソッドではなくて、「マクロ」であることを示しています。(Rust では、可変長引数を取る関数やメソッドを定義できないため、`println!()` がマクロとして定義されています)
|