2024-04-04

This commit is contained in:
2024-04-04 13:44:51 +09:00
parent d444640770
commit fabe7642fa
40 changed files with 2423 additions and 0 deletions

88
src/04_method.rb Executable file
View File

@@ -0,0 +1,88 @@
#!/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
}