[Ruby] Ruby의 철학: Refactoring

OOING·2024년 10월 28일
0

Ruby & Ruby on Rails

목록 보기
9/11

if/unless 문을 간결하게

# 기존 if 문 작정
if condition
	# Do Something
end

# if 문을 더 간단하게 리팩토링
expression if boolean

# 기존 unless 문 작성
unless condition
	# Do Something
end

# if 문을 더 간단하게 리팩토링
expression unless boolean

# 삼항연산자
puts 3 < 4 ? "true" : "false"
# true 출력

case 문을 간결하게

# 기존 case 문 작성
case language
	when "JS"
    	puts "websites!"
    when "python"
    	puts "ai"
    else	
  		puts "I don't know!"
end

# case 문을 더 간단하게 리팩토링
case language
	when "JS" then puts "websites!"
    when "python" then puts "ai"
   	else puts "I don't know!"
end

대입 연산자(conditional assignment): ||=

값이 없는 경우(nil인 경우) 대입, 그렇지 않은 경우는 유지

object = nil
object ||= "name"
puts object
# Output: name

object ||= "age"
puts object
# Output: name

object = "age"
puts object
# Output: age

함수 리팩토링: return 제거

def add(x, y)
	return x + y
end

# 리팩토링: return 제거
def add(x, y)
	x + y
end

범위: .upto, .downto

.upto(num)은 num까지 +1 되는거
예를 들어, 95.upto(100)이면, 95, 96, 97, 98, 99, 100이 해당

.downto(num)은 num까지 -1 되는거

숫자뿐만 아니라 문자의 오름차순, 내림차순도 가능하다.

"L".upto("P") {|c| print c}
# LMNOP

특정 메소드를 응답할 수 있는지 확인: respond_to?(:method명)

age = 140

age.respond_to?(:next)
# true

추가: push, +=, <<

array = [1, 2, 3]
array.push(4)
array << 5

string = "My name "
string += "is "
string << "Ruby!"
profile
HICE 19

0개의 댓글