튜플

Julia 중급

Anthony Markham

Quantitative Developer

튜플 - 소개

  • 변경 불가능한 순서 있는 값 모음.
  • 어떤 데이터 타입도 포함 가능.
  • 벡터와 동일하게 정수 인덱싱.
Julia 중급

튜플 - 왜 사용할까요?

장점

  • 보호해야 하는 데이터에 튜플을 쓰면 코드가 더 안전합니다.
  • 벡터보다 빠르고 메모리를 덜 사용합니다.

단점

  • 튜플은 정렬할 수 없습니다.
  • 값을 추가, 삭제, 변경할 수 없습니다.
Julia 중급

튜플 - 문법

  • 괄호를 사용하고 값 사이에 쉼표를 넣어 튜플을 정의합니다.
my_tuple = (10, 20, 30, 40)
  • 튜플에는 여러 데이터 타입을 섞을 수 있습니다.
my_mixed_tuple = (10, "Hello", 30, true)
Julia 중급

튜플 - 인덱싱

  • 튜플은 정수로 인덱싱합니다(벡터와 동일).
my_tuple = (10, 20, 30, 40)
println(my_tuple[1])
10
println(my_tuple[2:3])
(20, 30)
Julia 중급

튜플 - 불변성

  • 튜플은 생성 후 값을 추가하거나 제거할 수 없습니다.
  • 튜플 내부 값도 수정할 수 없습니다.
my_tuple = (10, 20, 30, 40, 50)
append!(my_tuple, 60)
MethodError: no method matching append!(::NTuple{5, Int64}, ::Int64)
my_tuple = (10, 20, 30, 40, 50)
my_tuple[1] = 15
MethodError: no method matching setindex!(::NTuple{5, Int64}, ::Int64, ::Int64)
Julia 중급

튜플 - 불변성

  • 튜플은 원소 개수를 추적합니다. 이는 변경되지 않습니다.
  • 이는 변수의 타입에 반영됩니다.
my_vector = [10, 20, 30, 40, 50]
my_tuple = (10, 20, 30, 40, 50)

println(typeof(my_vector))
println(typeof(my_tuple))
Vector{Int64}
NTuple{5, Int64}
Julia 중급

튜플 - NamedTuple

  • NamedTuple은 각 값을 이름으로도 접근할 수 있는 튜플입니다.
  • NamedTuple의 각 값은 고유한 이름을 가집니다.
  • NamedTuple도 튜플과 동일한 불변성을 가집니다.
my_named_tuple = (name="Anthony", country="Australia", city="Sydney")
println(my_named_tuple[1])
println(my_named_tuple.name)
Anthony
Anthony
Julia 중급

연습해 봅시다!

Julia 중급

Preparing Video For Download...