English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Erlang 변수

에릭에서는 모든 변수가 '=' 문장으로 바인딩됩니다. 모든 변수는 대문자로 시작해야 합니다. 다른 프로그래밍 언어에서는 '=' 기호가 대입에 사용되지만, Erlang에서는 적용되지 않습니다. 이전에 설명한 것처럼, 변수는 '=' 문장을 사용하여 정의됩니다.

Erlang에서 주의해야 할 것은 변수가 불변하다는 것입니다. 즉, 변수의 값을 변경하기 위해 그를 파괴하고 다시 생성해야 합니다.

이전 장에서 Erlang에서 다음과 같은 기본 변수가 소개되었습니다-

  • Numbers- 정수나 실수를 나타내는 데 사용됩니다. 예를 들어:10。

  • Boolean - 이는 보유값을 나타내며 true 또는 false일 수 있습니다.

  • Bit String- 비트 문자열은 유형 없는 메모리 영역을 저장하는 데 사용됩니다. 예를 들어: << 40,50 >>。

  • Tuple- 튜플은 항목 수가 고정된 복잡한 데이터 타입입니다. 예를 들어: {40,50}。

  • Map- 매핑은 키의 수가 불변합니다-- 매핑은 키와 값의 관계를 가진 복잡한 데이터 타입입니다. 매핑의 각 키-값 관계는 연결 쌍으로 불립니다. 예를 들어: {type => person, age => 25}。

  • List- 리스트는 항목 수가 불변하는 복잡한 데이터 타입입니다. 예를 들어: [40,40]。

변수 선언

변수 정의의 일반 문법은 다음과 같습니다-

문법

var-name = var-value

어디서

  • var-name - 이는 변수의 이름입니다

  • var-value - 이는 변수의 값에 바인딩됩니다

변수 선언 예제가 다음과 같습니다-

예시

-module(helloworld). 
-export([start/0]). 
start() -> 
   X = 40, 
   Y = 50, 
   Result = X + Y, 
   io:fwrite("~w",[Result]).

위의 예제에서 우리는2변수가 하나는 값에 바인딩됩니다40의 X, 또 다른 것은 값에 바인딩됩니다50의 Y. 또 다른 이름으로 Result는 X와 Y의 합에 바인딩됩니다.

위 프로그램의 출력은 다음과 같습니다:

출력

90

이름 주기

위와 같이 변수 이름은 대문자로 시작해야 합니다. 소문자로 선언된 변수를 예제로 들어보겠습니다.

예시

-module(helloworld). 
-export([start/0]). 
start() -> 
   X = 40, 
   Y = 50, 
   result = X + Y, 
   io:fwrite("~w",[Result]).

위 프로그램을 컴파일하려고 하면 다음과 같은 컴파일 시 오류가 발생합니다.

출력

helloworld.erl:8: 변수 'Result'는 풀리지 않습니다

또한, 모든 변수는 한 번만 할당할 수 있습니다. 한 번 이상 변수를 할당하는 예제를 들어보겠습니다.

예시

-module(helloworld). 
-export([start/0]). 
start() -> 
   X = 40, 
   Y = 50, 
   X = 60, 
   io:fwrite("~w",[X]).

위 프로그램을 컴파일하려고 하면 다음과 같은 컴파일 시 오류를 받을 것입니다.

출력

helloworld.erl:6: 경고: 변수 'Y'는 사용되지 않습니다
helloworld.erl:7: 경고: 어떤 문항도 일치하지 않을 것입니다
helloworld.erl:7: 경고: 이 문항의 가드는 'false'로 평가됩니다

출력 변수

이 장에서는 변수 출력의 다양한 기능을 사용하는 방법에 대해 논의할 것입니다.

io:fwrite 함수 사용

이제 이제 모든 프로그램에서 이를 볼 수 있어야 합니다(io:fwrite).fwrite함수는 'io' 모듈이나 Erlang의 일부로, 프로그램에서 변수의 값을 출력하는 데 사용할 수 있습니다.

아래 예제는 fwrite 문과 함께 사용할 수 있는 더 많은 매개변수를 보여줍니다.

예시

-module(helloworld). 
-export([start/0]). 
start() -> 
   X = 40.00, 
   Y = 50.00, 
   io:fwrite("~f~n",[X]), 
   io:fwrite("~e",[Y]).

위 프로그램의 출력은 다음과 같습니다:-

출력

40.000000
5.00000e+1

위 프로그램에 대해 주의해야 할 몇 가지 사항이 있습니다.

  • ~ − 이 문자는 출력에 대한 포맷을 설정해야 하는 것을 나타냅니다.

  • ~f− 매개변수는 부호 실수로, [-] ddd.ddd 중에서 precision은 소수점 뒤의 자리수입니다. 기본 정밀도는6,그리고 최소한1。

  • ~nprintln이는 새 줄에 출력합니다.

  • ~e− 매개변수는 부호 실수로, [-] d.ddde + -ddd 중에서 precision은 입력된 자리수입니다. 기본 정밀도는6,그리고 최소한2。