回答編集履歴

1

補足を追加しました

2016/03/20 16:59

投稿

tatsuya6502
tatsuya6502

スコア2035

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!()` がマクロとして定義されています)