差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
blog:2020:1101_今日のメソッド [2020/11/01 10:36]
kijima [その1]
blog:2020:1101_今日のメソッド [2020/11/01 11:52] (現在)
kijima [その2]
行 6: 行 6:
  
 Railsの''Hash#slice!''から。 Railsの''Hash#slice!''から。
- 
- 
-<code ruby> 
-hash = { a: 1, b: 2, c: 3 } 
-hash.slice!(:a, :b) 
-hash # => {:a=>1, :b=>2} 
-</code> 
- 
-要するに配列の対応したやつだけ取り出すメソッド。!は破壊的なことをしめす。hash自体が変化している。 
  
 <code ruby> <code ruby>
行 28: 行 19:
  
   * sliceの挙動をちょっと変えて、便利にしている。   * sliceの挙動をちょっと変えて、便利にしている。
 +
 +''slice!''の例
 +<code ruby>
 +hash = { a: 1, b: 2, c: 3 }
 +hash.slice!(:a, :b)
 +hash # => {:a=>1, :b=>2}
 +</code>
 +
 +要するに配列の対応したやつだけ取り出すメソッド。!は破壊的なことをしめす。hash自体が変化している。
 ===== その2 ===== ===== その2 =====
 ''String#camelize'' ''String#camelize''
 +
 +<code ruby>
 +def camelize(first_letter = :upper)
 +  case first_letter
 +  when :upper
 +    ActiveSupport::Inflector.camelize(self, true)
 +  when :lower
 +    ActiveSupport::Inflector.camelize(self, false)
 +  else
 +    raise ArgumentError, "Invalid option, use either :upper or :lower."
 +  end
 +end
 +</code>
 +
 +
 +<code ruby>
 +"mozilla_firefox".camelize # => MozillaFirefox # upper camel case というらしい。
 +"mozilla_firefox".camelize(:lower) # => mozillaFirefox # lower camel case というらしい。最初だけ小文字。
 +</code>
 +
 +  * '':upper'' か '':lower'' 以外を入れたとき、ちゃんとエラーメッセージが返ってきて親切。
 ===== その3 ===== ===== その3 =====
-''proc''+''default-proc''
  
 +そもそもprocがわかってない。
 +
 +<code ruby>
 +h = Hash.new { |a| h[a] = a*a } # defaultを定義
 +p = h.default_proc
 +p.call(2)  # => 4
 +p.call(10) # => 100
 +h          # => {2=>4, 10=>100} 
 +</code>
 +
 +<code ruby>
 +h = Hash.new { 3 } # defaultを定義
 +p = h.default_proc
 +p.call # => 3
 +</code>
 ===== 4 ===== ===== 4 =====
 ''hash#default'' ''hash#default''
 +
 +https://www.includehelp.com/ruby/hash-default_proc-method-with-example.aspx
  
 <code ruby> <code ruby>
blog/2020/1101_今日のメソッド.1604194605.txt.gz · 最終更新: 2020/11/01 10:36 by kijima