Fonctions et variables
Introduction
Wave 프로그래밍 언어의 핵심 설계 철학은 저수준 성능과 고수준 추상화 사이의 균형을 유지하면서, 효율적이고 유연한 소프트웨어 개발 환경을 제공하는 데 있습니다. 이 섹션에서는 Wave 프로그램을 구성하는 가장 기본적인 요소인 함수와 변수를 소개합니다.
함수는 프로그램의 동작과 논리를 구성하는 핵심 단위이며, 변수는 그 과정에서 필요한 데이터를 저장하고 관리하는 역할을 합니다. 함수와 변수를 정의하고 사용하는 방법을 정확히 이해하면, Wave 언어의 구조와 설계 의도를 보다 깊이 있게 활용할 수 있습니다.
함수
Wave에서 함수는 독립적으로 실행할 수 있는 재사용 가능한 코드 블록입니다. 특정 동작이나 계산을 하나의 단위로 묶어 표현할 수 있으며, 프로그램 전반에서 필요할 때마다 호출할 수 있습니다.
함수를 사용하면 반복되는 코드를 줄일 수 있고, 프로그램을 논리적으로 분리하여 가독성과 유지보수성을 높일 수 있습니다. 또한 계산 처리, 입출력 관리, 로직 분리와 같은 다양한 목적에 활용됩니다.
Wave에서 함수는 fun 키워드로 정의되며, 함수 이름과 매개변수 목록, 그리고 중괄호 {}로 감싸진 함수 본체로 구성됩니다.
Définir une fonction
Wave에서 가장 기본적인 함수 정의 형태는 다음과 같습니다.
fun main() {
// Écrivez votre code ici
}
main 함수는 프로그램의 실행 진입점으로, Wave 프로그램에는 반드시 하나의 main 함수가 존 재해야 합니다.
프로그램은 이 함수부터 실행을 시작합니다.
함수는 필요에 따라 매개변수를 가질 수 있으며, 계산 결과나 값을 호출한 곳으로 반환할 수도 있습니다. 반환값이 있는 경우에는 함수 선언부에서 반환 타입을 명시합니다.
Exemple : Fonction simple
다음 예제는 두 개의 정수를 받아 그 합을 반환하는 간단한 함수입니다.
fun add(a :i32, b :i32) -> i32 {
return a + b;
}
fun main() {
var result = add(5, 7); // Appel de la fonction add
println(result); // Affichage : 12
}
이 예제에서 add 함수는 두 개의 정수형 매개변수 a와 b를 받아 더한 뒤, 그 결과를 반환합니다.
main 함수에서는 add 함수를 호출하고, 반환된 값을 변수에 저장한 후 출력합니다.
이처럼 함수는 특정 동작을 캡슐화하고, 프로그램의 여러 부분에서 재사용할 수 있도록 해줍니다.
Variable
Les variables sont utilisées pour stocker et manipuler des données dans un programme. Wave는 변수 선언 시 가변 변수와 불변 변수를 명확히 구분하여, 데이터 변경에 대한 의도를 코드 수준에서 드러낼 수 있도록 설계되어 있습니다.
이를 통해 프로그램의 상태 변화가 보다 명확해지고, 의도하지 않은 값 변경으로 인한 오류를 줄일 수 있습니다.
Variable mutable
Wave에서 변수는 기본적으로 가변(mutable)입니다. 즉, 한 번 선언된 이후에도 프로그램 실행 중에 값을 변경할 수 있습니다.
가변 변수는 var 키워드를 사용하여 선 언합니다.
var x :i32 = 10;
x = 20;
위 코드에서 x는 초기값으로 10을 가지며, 이후에 20으로 값을 변경할 수 있습니다.
이처럼 상태가 변해야 하는 데이터에는 가변 변수를 사용합니다.
Variable immuable
변수를 불변(immutable)으로 선언하면, 초기 값이 할당된 이후에는 해당 값을 변경할 수 없습니다. 불변 변수는 let 키워드를 사용하여 선언합니다.
let y :i32 = 5;
// y = 10; // 오류: 불변 변수는 값을 변경할 수 없습니다.
불변 변수는 값이 변경되지 않음을 보장하기 때문에, 프로그램의 안정성과 예측 가능성을 높이는 데 도움이 됩니다. 값 변경이 필요 없는 상수성 데이터에는 불변 변수를 사용하는 것이 권장됩니다.
Wave에서는 let 키워드와 함께 mut를 사용하여, 명시적으로 가변성을 허용할 수도 있습니다.
let mut y :i32 = 5;
y = 10;
경우 변수는 let으로 선언되었지만, mut 키워드를 통해 값 변경이 허용됩니다.
Exemple de déclaration de variable
다음은 다양한 타입의 가변 및 불변 변수를 선언하는 예제입니다.
var x :i32 = 10;
let y :f64 = 3.14159;
var name :str = "Wave";
let is_active :bool = true;
이 예제에서 x와 name은 가변 변수이며, y와 is_active는 불변 변수입니다.
Wave에서는 var와 let을 명확히 구분함으로써, 데이터 변경 가능 여부를 코드 차원에서 드러냅니다.
가변 변수와 불변 변수를 적절히 구분하여 사용하면, 데이터의 일관성을 유지하면서도 보다 견고하고 예측 가능한 프로그램을 작성할 수 있습니다.