#!/usr/bin/ruby # 메서드 def do_something puts "Hello" end =begin * 메서드 이름은 소문자와 숫자, 밑줄문자등을 사용합니다. 유니코드 문자도 괜찮습니다. * '!' : 뭔가 주의가 필요한 메서드 뒤에는 '!'를 붙입니다. * '?' : true/false를 반환하는 메서드 뒤에는 '?'를 붙입니다. * '=' : 값을 할당하는 셋터 메서드 뒤에는 '='를 붙입니다. =end def plus_something(x, y=1) # 매개변수를 받을 수 있습니다. y에는 기본값을 줘봤습니다. x + y # 'return'을 사용하지 않아도, 제일 마지막 문장의 값이 반환됩니다. end def get_something(*args) # 변수 이름 앞에 '*'을 붙여서 임의 길이의 매개변수를 전달 받을 수 있습니다. puts "Hello" end def get_block(&block) # 변수 이름 앞에 '&'을 붙여서 블록을 전달 받을 수 있습니다. block.call(self) end # 예외 처리 def my_method begin # 여기서 예외가 발생하면, rescue # 여기에서 예외를 처리합니다. end end def my_method # 이렇게도 작성할 수 있습니다. # 여기서 예외가 발생하면, rescue # 여기에서 예외를 처리합니다. else # 예외가 발생하지 않았을 때 처리할 내용 ensure # 예외가 발생했든 말든 처리할 내용 end # 메서드 호출 my_method() my_method # 괄호는 없어도 됩니다. my_method(x,y) my_method x, y array = [1,2,3] my_method(*array) # my_method(1,2,3)과 같습니다. hash = {a:1,b:2} my_method(**hash) # 해시에는 '**'를 사용합니다. my_method do # 메서드에 매개변수로 블록을 전달합니다. # do something end my_method { # 메서드에 매개변수로 블록을 전달합니다. # do something } a = [1,2,3] b = ["a","b","c"] c = a.append(*b).reverse # 메서드 호출을 연결 puts c reg = /foo/ "Hello".match(reg)&.values_at(1,2) # '&'를 붙이면 결과가 nil일 때에 이후 메서드가 실행되지 않도록 합니다. END{ # https://ruby-doc.org/3.2.2/syntax/methods_rdoc.html # https://ruby-doc.org/3.2.2/syntax/calling_methods_rdoc.html }