回答編集履歴
3
質問に答えれてなかった部分を修正
answer
CHANGED
@@ -12,6 +12,8 @@
|
|
12
12
|
|
13
13
|
としていますが、これは **dice関数の返り値のみに対して** putsを適用しています。
|
14
14
|
なのでたしかに"もう1回"の方でputsを使っていてそっちにもputsを適用しているように感じますが実はそっちには影響していません。
|
15
|
+
なので "もう1回" の方にputsをつけないと表示されません。そして返り値を2つ連続で書こうとするとエラーになります。
|
16
|
+
(1つ目が文字列型の "もう1回", 2つ目が[1, 2, 3, 4, 5, 6].sample の値)
|
15
17
|
|
16
18
|
そして、なぜ puts を diceの前に記述しているかと言うとreturnで返ってくる値(それこそ返り値)を表示したいからにあります。
|
17
19
|
|
@@ -40,4 +42,16 @@
|
|
40
42
|
```
|
41
43
|
|
42
44
|
こんな感じで関数は文字列なり数字なりの値だけ返す関数の場合は使うときにputsを使って扱いまずが
|
43
|
-
関数内でputsを使っている場合(hi_puts関数)では不必要になります。
|
45
|
+
関数内でputsを使っている場合(hi_puts関数)では不必要になります。
|
46
|
+
|
47
|
+
またdiceを使う前にputsを使いたくない場合、あんまり綺麗なコードではないですが
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
def dice_in_puts
|
51
|
+
result = [1, 2, 3, 4, 5, 6].sample
|
52
|
+
return puts result unless result == 1
|
53
|
+
puts "もう1回"
|
54
|
+
puts [1, 2, 3, 4, 5, 6].sample
|
55
|
+
end
|
56
|
+
```
|
57
|
+
こんな感じで書くことができます。(なので結果としてあとからputsを書いた方がエコって感じですね。)
|
2
強調したい点をボールド体に
answer
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
puts dice
|
11
11
|
```
|
12
12
|
|
13
|
-
としていますが、これはdiceの返り値に対してputsを適用しています。
|
13
|
+
としていますが、これは **dice関数の返り値のみに対して** putsを適用しています。
|
14
14
|
なのでたしかに"もう1回"の方でputsを使っていてそっちにもputsを適用しているように感じますが実はそっちには影響していません。
|
15
15
|
|
16
16
|
そして、なぜ puts を diceの前に記述しているかと言うとreturnで返ってくる値(それこそ返り値)を表示したいからにあります。
|
1
説明不足な点を追記
answer
CHANGED
@@ -11,4 +11,33 @@
|
|
11
11
|
```
|
12
12
|
|
13
13
|
としていますが、これはdiceの返り値に対してputsを適用しています。
|
14
|
-
なのでたしかに"もう1回"の方でputsを使っていてそっちにもputsを適用しているように感じますが実はそっちには影響していません。
|
14
|
+
なのでたしかに"もう1回"の方でputsを使っていてそっちにもputsを適用しているように感じますが実はそっちには影響していません。
|
15
|
+
|
16
|
+
そして、なぜ puts を diceの前に記述しているかと言うとreturnで返ってくる値(それこそ返り値)を表示したいからにあります。
|
17
|
+
|
18
|
+
```ruby
|
19
|
+
irb(main):001:0>
|
20
|
+
irb(main):002:0> def hi
|
21
|
+
irb(main):003:1> "hoge"
|
22
|
+
irb(main):004:1> end
|
23
|
+
=> :hi
|
24
|
+
irb(main):005:0>
|
25
|
+
irb(main):006:0> hi
|
26
|
+
=> "hoge"
|
27
|
+
irb(main):007:0> puts hi
|
28
|
+
hoge
|
29
|
+
=> nil
|
30
|
+
irb(main):008:0>
|
31
|
+
irb(main):009:0> def hi_puts
|
32
|
+
irb(main):010:1> puts "hoge"
|
33
|
+
irb(main):011:1> end
|
34
|
+
=> :hi_puts
|
35
|
+
irb(main):012:0>
|
36
|
+
irb(main):013:0> hi_puts
|
37
|
+
hoge
|
38
|
+
=> nil
|
39
|
+
irb(main):014:0>
|
40
|
+
```
|
41
|
+
|
42
|
+
こんな感じで関数は文字列なり数字なりの値だけ返す関数の場合は使うときにputsを使って扱いまずが
|
43
|
+
関数内でputsを使っている場合(hi_puts関数)では不必要になります。
|