9cubed
ブログ | Tailwind | Vite | Python | Node.js | Linux | PowerShell | その他 | 将棋ウォーズ | 歌の練習
Ruby

Ruby のお勉強 - 関数・メソッド -

公開日:2014-12-24
更新日:2019-05-11

関数・メソッド

def test
  return 1
end
p test 
1
関数・メソッドは、def ~ end で定義する。


def test
  3
  2
  1
end
p test 
1
return は省略できる。最後の値が有効。


def test(a)
  a = a + 1
end
print test 5
6
こんな書き方もできる。


def test(s)
  s[0] = "A"
end
s = "abc"
test(s)
print s
Abc
変数は全てオブジェクトなので、引数は参照渡しになる。


def test()
  return 1, 2
end
a, b = test
p a
p b
1
2
戻り値を複数返して、複数同時に代入できる。但し、return を付けないとエラーになる。


def test
  [1, 2, 3]
end
a, b, c = test
p a
p b
p c 
1
2
3
配列にすれば、return を付けなくても、複数戻り値を返せる。


def test(*args)
  p args.count
end
test
test(1)
test(1, 2)
test(1, 2, 3)
0
1
2
3
可変長引数。引数を配列で取得できる。


def test(a)
  if a == 0
    "OK"
  end
  
  if a == 1
    "NG"
  end 
end
p test(0)
p test(1)
nil
"NG"
a == 0 の時、"OK" が最後になるので、戻り値が "OK" になるのかと思ったら、nil になった。
最後の if が nil を返しているためだと思われる。


def test(a)
  if a == 0
    "OK"
  else a == 1
    "NG"
  end
end
p test(0)
p test(1)
"OK"
"NG"
else にしたところ、予想通りの動きとなった。
return を書いた方が、間違えがないし、見やすいと思う。


class TestClass
  def test1
    p "test"
  end
  def test2
    test1
  end
  
  public  :test1, :test2
  private :test1
end
#TestClass.new.test1 #privateメソッドのためエラー
TestClass.new.test2
"test"
メソッドの可視性は、シンボルを使って指定可能。
また、最後に指定したものが有効になる。


YouTube X

新着一覧

  • SCSS のインストールVite
  • Tailwind CSS のプロジェクトの作成Tailwind
  • TypeScriptのプロジェクトの作成Vite
  • Flask のインストールと動作確認Python
  • 簡易Webサーバーの作成Python
  • pipeline で文章の生成Python
  • pipeline で文章の要約Python
  • 音声から文字起こしPython
  • Node.js のインストールNode.js
  • .ps1(PowerShellスクリプト)を実行可能にするPowerShell

アーカイブ

  • 2025/12
  • 2025/11
  • 2025/10
  • 2025/09
  • 2025/08

以前のカテゴリー一覧

  • CakePHP3
  • CentOS7
  • HTML・CSS・JavaScript
  • Haskell
  • JavaScript
  • Kotlin
  • Laravel5
  • PHP
  • Python
  • Ruby
  • RubyOnRails5
  • TypeScript
  • Vue.js
  • Webサーバ講座
  • Webプログラミング講座
  • jQuery
  • linux
  • パソコン講座
  • ブログ
  • プログラミング講座
  • メモ帳作成講座
  • 数学

Copyright © 9cubed. All Rights Reserved.

プライバシーポリシー 利用規約
▲