[Ruby] 데이터 구조: hash, symbol

OOING·2024년 10월 26일
0

Ruby & Ruby on Rails

목록 보기
7/11

symbol

:으로 시작하는 문자열, immutable(변경 불가능)
메모리에 한 번만 저장됨

# string과 symbol 비교
puts "string".object_id
puts "string".object_id
# 두 개의 object_id의 값은 다름

puts :symbol.object_id
puts :symbol.obkect_id
# 두 개의 object_id의 값은 같음
# symbol 생성
my_symbol = :symbol

symbol_hash = {
	:one => 1,
    :two => 2,
    :three => 3
}

string을 symbol로 변환: to_sym, intern

strings = ["a", "b", "c"]

symbols = []
strings.each do |s|
	symbols.push s.to_sym
    # symbols.push s.intern 도 동일하게 작동!
end

조건에 맞는 값만 필터링: .select

grades = {
	sho: 100,
    rou: 80,
    rai: 70,
    getsu: 50
}

good = grades.select { |name, grade| grade > 60}

.each_key, .each_value

grades = {
	sho: 100,
    rou: 80,
    rai: 70,
    getsu: 50
}

grades.each_key {|key| puts key}
# sho \n rou \n ...

grades.each_value {|value| puts value}
# 100 \n 80 \n ...

hash의 모양?

hash rocket 타입

hash_rocket = {
	"one" => 1,
    "two" => 2
}

Ruby 1.9. 버전부터 바뀐 syntax : 더 간단해짐

new_hash = {
	one: 1,
    two: 2,
    three: 3
}
profile
HICE 19

0개의 댓글