Ruby Gold 認定試験の Ver 3 の勉強時に学んだことを備忘録として残しておく

[前回までの記事]

環境

  • ruby: 3.1.2

__FILE__

__FILE__ が書いてあるファイルのファイル名を表す 似たようなので $0 があるがこちらは直接実行したファイルのファイル名を表す

puts __FILE__
puts $0
require_relative './file_name'
$ ruby file_name.rb
__FILE__: file_name.rb
$0: file_name.rb

$ ruby require_file_name.rb
__FILE__: file_name.rb
$0: require_file_name.rb

累乗の計算

def exponentiation(n)
  n ** n
end

puts exponentiation(-1) #=> -1
puts exponentiation(1i) #=> 0.20787957635076193+0.0i 複素数

正規表現 =~ の $1 等

'www.ruby.co.jp'.match(%r(www(\.ruby\.co)(\.jp))) do |e|
  puts "match e= #{e}"
  puts "match e[0]= #{e[0]}"
  puts "match e[1]= #{e[1]}"
  puts "match e[2]= #{e[2]}"
  puts "match $0 #{$0}"
  puts "match $& #{$&}"
  puts "match $1 #{$1}"
  puts "match $2 #{$2}"
end

#=> match e= www.ruby.co.jp
#=> match e[0]= www.ruby.co.jp
#=> match e[1]= .ruby.co
#=> match e[2]= .jp
#=> match $0 regex.rb # 実行ファイル名
#=> match $& www.ruby.co.jp
#=> match $1 .ruby.co
#=> match $2 .jp