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