89 lines
2.1 KiB
Ruby
Executable File
89 lines
2.1 KiB
Ruby
Executable File
#!/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
|
|
}
|