수색…


번호

Elixir에는 정수부동 소수점 숫자 가 함께 제공됩니다. 정수 리터럴 은 10 진수, 2 진수, 8 진수 및 16 진수 형식으로 작성할 수 있습니다.

iex> x = 291
291

iex> x = 0b100100011
291

iex> x = 0o443
291

iex> x = 0x123
291

Elixir은 bignum 산술을 사용하므로 정수 범위는 시스템의 사용 가능한 메모리에 의해서만 제한됩니다 .

부동 소수점 숫자 는 배정 밀도이며 IEEE-754 사양을 따릅니다.

iex> x = 6.8
6.8

iex> x = 1.23e-11
1.23e-11

Elixir는 float에 대한 지수 형식도 지원합니다.

iex> 1 + 1
2

iex> 1.0 + 1.0
2.0

먼저 두 개의 정수를 추가하고 결과는 정수입니다. 나중에 두 개의 부동 소수점 숫자를 추가했으며 결과는 부동 소수점 숫자입니다.

Elixir를 나누면 항상 부동 소수점 숫자가 반환됩니다.

iex> 10 / 2
5.0

같은 방법으로 부동 소수점 수로 정수를 더하거나 빼거나 곱하면 결과는 부동 소수점이됩니다.

iex> 40.0 + 2
42.0

iex> 10 - 5.0
5.0

iex> 3 * 3.0
9.0

정수 나누기의 경우 div/2 함수를 사용할 수 있습니다.

iex> div(10, 2)
5

원자

원자는 어떤 것의 이름을 나타내는 상수입니다. 원자의 가치는 이름입니다. 원자 이름은 콜론으로 시작합니다.

:atom   # that's how we define an atom

원자의 이름은 고유합니다. 같은 이름의 두 원자는 항상 같습니다.

iex(1)> a = :atom
:atom

iex(2)> b = :atom
:atom

iex(3)> a == b
true

iex(4)> a === b
true

truefalse 부울은 실제로 원자입니다.

iex(1)> true == :true
true

iex(2)> true === :true
true

원자는 특수 원자 테이블에 저장됩니다. 이 테이블이 가비지 수집되지 않는다는 것을 아는 것이 중요합니다. 그래서, 당신이 원한다면 (또는 우연히 그것은 사실입니다) 끊임없이 원자를 만듭니다 - 그것은 나쁜 생각입니다.

바이너리 및 비트 스트링

엘릭서의 바이너리는 Kernel.SpecialForms 구조체 << >>를 사용하여 생성됩니다.

Elixir는 바이너리 프로토콜 및 인코딩 작업에 매우 유용합니다.

바이너리 및 비트 스트링은 쉼표로 구분 된 정수 또는 변수 값의 목록을 사용하여 지정되며 "<<"및 ">>"로 북 코드됩니다. 이들은 '단위'로 구성되며, 비트 그룹 또는 바이트 그룹으로 구성됩니다. 기본 그룹은 정수를 사용하여 지정된 단일 바이트 (8 비트)입니다.

<<222,173,190, 239>> # 0xDEADBEEF

엘 릭어 문자열은 바이너리로 직접 변환됩니다.

iex> <<0, "foo">>
<<0, 102, 111, 111>>

바이너리의 각 "세그먼트"에 "지정자"를 추가하여 인코딩 할 수 있습니다.

  • 데이터 형식
  • 크기
  • 엔디안

이러한 지정자는 "::"연산자를 사용하여 각 값 또는 변수를 따라 인코딩됩니다.

<<102::integer-native>>
<<102::native-integer>> # Same as above
<<102::unsigned-big-integer>>
<<102::unsigned-big-integer-size(8)>>
<<102::unsigned-big-integer-8>> # Same as above
<<102::8-integer-big-unsigned>>
<<-102::signed-little-float-64>> # -102 as a little-endian Float64
<<-102::native-little-float-64>> # -102 as a Float64 for the current machine

사용할 수있는 데이터 유형은 다음과 같습니다.

  • 정수
  • 흙손
  • 비트 (비트 문자열의 별칭)
  • 비트 스트링
  • 이진
  • 바이트 (바이너리의 별칭)
  • utf8
  • utf16
  • utf32

바이너리 세그먼트의 '크기'를 지정할 때 세그먼트 지정자에서 선택한 '유형'에 따라 다릅니다.

  • 정수 (기본값) 1 비트
  • 1 비트 부동
  • 2 진 8 비트


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow