Ruby Recipe101 配列の要素の出現回数を調べる

配列にある各要素の出現回数を調べるには以下のようにハッシュを使います。

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

ary = %w(田中 佐藤 伊藤 田中 トクマ 井上 石原 伊藤 いとう いとう いとう いとう)
count = Hash.new(0)
ary.each do |elem|
  count[elem] += 1
end
p count
#=> {"田中"=>2, "佐藤"=>1, "伊藤"=>2, "井上"=>1, "石原"=>1, "いとう"=>4}

Rubyレシピブック 第3版 303の技

Rubyレシピブック 第3版 303の技

Ruby Recipe47 文字列を単語に分ける

文字列を単語毎に分割してリストを作るやり方。
単純に「単語に分ける」といっても何を持って単語とするかによってやり方は異なります。

str = "def foo(n) n * 3 end"

を例に3つのやり方で分割してみます。

空白類文字を区切りにして分ける
p str.split(nil)
    #=> ["def", "foo(n)", "n", "*", "3", "end"]
[a-zA-Z0-9_]のつながりだけを単語と見なして分ける
p str.scan(/\w+/n)
    #=> ["def", "foo", "n", "n", "3", "end"]
/\w+/か/\w+|[^\s\w]+/の2つを単語と見なして分ける
p str.scan(/\w+|[^\s\w]+/)
    #=> ["def", "foo", "(", "n", ")", "n", "*", "3", "end"]


基本的には一番上のsplitメソッドを使うやり方で事足りるのかな?

Rubyレシピブック 第3版 303の技

Rubyレシピブック 第3版 303の技

Ruby Recipe38 数値を表す文字列か調べる

文字列が"1"とか"123"とか数値を表すものかどうかを調べたい時には以下のやり方で調べられます。

# Integer()で変換できれば数値、例外発生したら違う
def integer_string?(str)
  Integer(str)
  true
rescue ArgumentError
  false
end

# Float()で変換できれば数値、例外発生したら違う
def float_string?(str)
  Float(str)
  true
rescue ArgumentError
  false
end

ちなみに結果は以下のようになります。

str = "あいうえお"
str2 = "123"
str3 = "3.14"
str4 = "12345"

# 普通の文字列
integer_string?(str)         #=> false
# 数値の文字列
integer_string?(str2)        #=> true
# 小数点の文字列
integer_string?(str3)        #=> false
# 全角数字の文字列
integer_string?(str4)        #=> false

# 普通の文字列
float_string?(str)           #=> false
# 数値の文字列
float_string?(str2)          #=> true
# 小数点の文字列
float_string?(str3)          #=> true
# 全角数字の文字列
float_string?(str4)          #=> false

小数点の場合、結果が異なるので(Integer()使ってるので)場合によって使い分けるのがいいかもですね!

ちなみに to_i メソッドとかの場合、無理やり変換しようとしてしまい例外が発生しないので、Integer()を使わないとなのですよー

Rubyレシピブック 第3版 303の技

Rubyレシピブック 第3版 303の技

Rubyレシピブック買ったよ!

Rubyを始めたので、手っ取り早いく学びたいし『Rubyレシピブック 第3版 303の技』を買いました!

Rubyレシピブック 第3版 303の技

Rubyレシピブック 第3版 303の技

これからブログにはちょいちょい気になるレシピを書いていこうと思うよ!

ターミナルで設定ファイルを読み込まずにemacsを起動する

がっつり書く場合は GUIemacs を使えばいいのだけど、ターミナルで作業してるときにちょちょっとファイルをいじるときにいちいち起動に時間をかかるのはめんどくさい・・・

今まではそういうときには vim を使ってたのだけど、どんどんキーバインドを忘れてきてる。
なので簡単に emacs を起動したい。
そんなときは .zshrc に以下の alias を追加する。

# emacs を設定ファイルを読み込まず起動する
alias emacs="emacs -q"


ちなみに設定してる alias を見るには

$ alias


設定してる alias を削除する

$ unalias emacs

でできるよ

はてな記法てすと

見出し1

見出し2

見出し3

引用

#!/usr/bin/ruby
# coding: utf-8

puts "Hello world!"
  • リスト
    • こども
  • りすと
dt
定義リスト
東京都
世田谷区


脚注*1をつけてみる

はてな記法のほうが良さそうだなー
慣れないと毎回ヘルプ見ることになりそうだけど・・・

*1:ここが下に注釈として入る

Markdown編集モードテスト

見出し1

見出し2

見出し3

強調
強調
強調
強調

#!/usr/bin/ruby
# coding: utf-8

puts "Hello world!"
  • りすとあいてむ1
  • りすとあいてむ2

  • すうじつきりすとあいてむ1

  • すうじつきりすとあいてむ2

見出しのレベルが変わってないのはデザインの問題か。
あとolになってない?