#!/usr/bin/ruby

# 진위형

v = nil # `nil`은 null 또는 unknown입니다.
v = false #`nil`과 `false` 모두 거짓입니다.
v = true # `true`와 그 외의 값들은 모두 참입니다.


# 숫자형

## 정수형

i = 1234
i = 1_234 # 읽기 쉽게 끊어 쓰기도 할 수 있어요.

h = 0xaa # 16진수
o = 0o252 # 8진수
b = 0b10101100 # 2진수
d = 0d170 # 0d로 시작하면 10진수입니다.


## 부동소수형

f = 12.34
f = 1.234e-2 # 지수 표현

## 유리수형: 값 뒤에 'r'을 븥입니다.

r = 2/3r # 2/3
r = 1.5r

## 복소수형: 허수 값 뒤에 'i'를 붙입니다.

c = 1i # 0 + 1i


# 문자열

s = "이것은 문자열이다.\n" # 이스케잎 문자도 처리됩니다.
s = '이것도 문자열입니다.' # 이스케잎 문자는 처리 안됨

s = %q{이 역시도 문자열입니다.} # 이스케잎 문자는 처리 안됨
s = %Q{또 문자열입니다.} # 이스케잎 문자도 처리됨
s = %{그리고 또 문자열입니다.} # 이스케잎 문자도 처리됨

s = <<DOC
네,
문자열입니다.
DOC

puts s

## 보간

price = 100
s = "가격은 #{price}입니다." # 변수 값이 동적으로 문자열에 삽입됩니다.

## 결합

s = "Apple" "Banana" "Carrot" # 인접한 문자열은 하나의 긴 문자열로 합쳐집니다.

## 문자 하나

ch = ?갑 # '?'로 시작해서 하나의 문자로만 이루어진 문자열을 나타냅니다.


# 심볼

:"my_symbol"

%s{my_symbol}

# 배열

array = [1, 2, 3]

%w{apple banana carrot} # 문자열 배열. 보간 안됨
%W{apple banana carrot} # 보간 처리됨

%i{foo bar} # 심볼 배열을 나타냅니다.
%I{foo bar}

# 해시

hash = {"one"=>1, "two"=>2, "three"=>3} # 해시는 키/값 쌍을'{}'로 묶어서 표현합니다.
hash = {one:1, two:2, three:3} # 이렇게도 쓸 수 있습니다.


# 레인지

(1..10) # 1 ~ 10까지
(1...10) # 1 ~ 9까지

# 정규표현식

re = /foo/ # 정규표현식은 '/'로 묶어서 표현합니다.ARGF

%r{foo}

# 람다

-> {1 + 1}
-> (v) { 1 + v }


# 백틱

%x{echo Hello} # 쉘 명령을 실행할 때 사용됩니다.

END{
  # https://ruby-doc.org/3.2.2/syntax/literals_rdoc.html
}
