回答編集履歴
1
追記
test
CHANGED
@@ -2,14 +2,24 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
`abc=${abc#000}`は、`${abc}`の先頭が`000`ならそれを削除したものということです。
|
5
|
+
`abc=${abc#000}`は、`${abc}`の先頭3文字が`000`ならそれを削除したものということです。
|
6
|
+
|
7
|
+
`abc=${abc#00}`は、`${abc}`の先頭2文字が`00`ならそれを削除したものということです。
|
8
|
+
|
9
|
+
`abc=${abc#0}`は、`${abc}`の先頭1文字が`0`ならそれを削除したものということです。
|
6
10
|
|
7
11
|
3つ並べることで、`0001` `0012` `0123`などが`1` `12` `123`になります。
|
8
12
|
|
9
|
-
`00001`も`01`になり`1`になりますね。
|
13
|
+
`00001`も1つ目の代入で`01`になり、3つ目の代入で`1`になりますね。
|
10
14
|
|
11
15
|
つまり、先頭の6個以下のゼロが削除されます。
|
12
16
|
|
13
17
|
|
14
18
|
|
15
19
|
先頭がゼロの数字文字列は8進数値とみなされるので、ゼロを消しているのでしょう。
|
20
|
+
|
21
|
+
#追記
|
22
|
+
|
23
|
+
これ、`abc`にもし`0`が入る可能性があれば、先頭ゼロの削除で空文字列になっちゃうので、足し算の時にエラーになりますね。
|
24
|
+
|
25
|
+
対応方法は複数ありますが、そのあたりは大丈夫なのでしょうか?
|