3/17
This commit is contained in:
parent
dc906b0ca5
commit
de6463a825
3 changed files with 26 additions and 31 deletions
13
cherry.md
13
cherry.md
|
@ -27,4 +27,17 @@ do endの代わりに{}でブロックをくくることもできる:僕が最
|
|||
112ページまで
|
||||
|
||||
## 3/17
|
||||
numbers.select {|n| n.even?} : このようにselectメソッドを使うと条件を満たした配列のみを作成できる。この例では偶数のみの配列が生成される
|
||||
numbers.find : findメソッドは戻り値が真になった最初の値のみを返す
|
||||
numbers.sum : 名前通り配列の要素を合計できる。文字列でも使える('')単純な連結ならjoinメソッドの方が楽だがsumは文字列の加工に優れる
|
||||
&:メソッド名でシンプルに書ける:ブロックパラメータが1つ、ブロックの中のメソッドに引数がない、メソッドを1回呼び出す以外の処理がない、といった条件をすべて満たすと [1,2,3,4,5,6].select{|n| n.odd?}を[1,2,3,4,5,6,].select{&:odd?}のように簡潔に書ける。演算子を使っている場合は不可能
|
||||
(1..5)←これはRangeという名前のオブジェクトだった!:ただのそういう感じの簡略記法かと思っていた。点が三つだと5は含まれなくなる
|
||||
(1..5).to_aで値が連続する配列を作ることができる:これ””””答え””””だ。こういうものがあるといいと思ってた
|
||||
RBG変換器の実装を通じて:これたぶんもっと短くなる方法ありそうだな……と思っていたらすぐ下でsumを使った記法が書かれていた。ぜひものにしたい
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
34
main.rb
34
main.rb
|
@ -1,33 +1,5 @@
|
|||
def fizz_buzz(n)
|
||||
if n % 15 == 0
|
||||
'FizzBuzz'
|
||||
elsif n % 3 == 0
|
||||
'Fizz'
|
||||
elsif n % 5 == 0
|
||||
'Buzz'
|
||||
else
|
||||
n.to_s
|
||||
def to_hex(r, g, b)
|
||||
[r, g, b].sum('#') do |n|
|
||||
n.to_s(16).rjust(2, '0')
|
||||
end
|
||||
end
|
||||
|
||||
require 'minitest/autorun'
|
||||
|
||||
class FizzBuzzTest < Minitest::Test
|
||||
def test_fizz_buzz
|
||||
assert_equal '1', fizz_buzz(1)
|
||||
assert_equal '2', fizz_buzz(2)
|
||||
assert_equal 'Fizz', fizz_buzz(3)
|
||||
assert_equal '4', fizz_buzz(4)
|
||||
assert_equal 'Buzz', fizz_buzz(5)
|
||||
assert_equal 'Fizz', fizz_buzz(6)
|
||||
assert_equal 'Fizz Buzz', fizz_buzz(15)
|
||||
end
|
||||
end
|
||||
|
||||
# puts fizz_buzz(1)
|
||||
# puts fizz_buzz(2)
|
||||
# puts fizz_buzz(3)
|
||||
# puts fizz_buzz(4)
|
||||
# puts fizz_buzz(5)
|
||||
# puts fizz_buzz(6)
|
||||
# puts fizz_buzz(15)
|
||||
|
|
10
main_test.rb
Normal file
10
main_test.rb
Normal file
|
@ -0,0 +1,10 @@
|
|||
require 'minitest/autorun'
|
||||
require_relative 'main'
|
||||
|
||||
class RdbTest < Minitest::Test
|
||||
def test_to_hex
|
||||
assert_equal '#000000', to_hex(0, 0, 0)
|
||||
assert_equal '#ffffff', to_hex(255, 255, 255)
|
||||
assert_equal '#043c78', to_hex(4, 60, 120)
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue