Ruby体験記7 〜エンコーディング指定、配列、再帰関数、
どうも。三十路です。
本日もこの本で勉強。
プログラミング学習シリーズ Ruby 1 はじめてのプログラミング
- 作者: arton,宇野るいも
- 出版社/メーカー: 翔泳社
- 発売日: 2009/01/29
- メディア: 大型本
- 購入: 5人 クリック: 95回
- この商品を含むブログ (30件) を見る
エンコーディングの指定
プログラムで使用する文字のエンコーディング。Windowsで日本語を扱うにはcp932を指定。
コメント形式であるがエンコーディング指定という特別な意味があるのでマジックコメントと呼ぶ。
規約としてマジックコメントとプログラムの間には空行を入れる。
# encoding: エンコーディング名 puts "test"
配列
複数のデータをまとめるために利用するデータ。
array = ["あ", "い", "う", "え", "お"]
puts array[0]
array[0] = "ぴ" #内容を上書き
puts array[0]
<<演算子
配列へ要素を追加する。追加は最後に追加される。
fib = [0,1] last = 1 while last < 100 fib << last last = fib[-2] + fib[-1] end puts "fibonacci: #{fib}"
小問題
total = 0 arr = [] for i in 0..9 arr << rand(10) + 1 total += arr[i] end puts "配列#{arr} 平均#{total/10}"
再帰関数
自分の中で自分を呼び出す。
再帰で配列の長さを取得する関数。
def array_length(array)
if array == []
0
else
1 + array_length(array[1..-1])
end
end
小問題3
飛ばす・・・。
複数の値を返す関数
配列を利用して複数の値を返す関数を定義できる。またreturnで複数の値を返すよう方法もある(内部的には配列を利用)
なおこのように複数の値を返す関数を多値関数という。
def 関数名
[戻り値1,戻り値2]
end
a, b = 関数名
aには戻り値1
bには戻り値2
小問題4
array = [] even = [] odd = [] for i in 0..9 array << rand(10) + 1 if array[i] % 2 == 0 even << array[i] else odd << array[i] end end puts "元の配列:#{array}" puts "偶数配列:#{even}" puts "奇数配列:#{odd}"
そんな日。