V(Vlang)는 단순성, 안전성, 빠른 컴파일을 목표로 하는 정적 타입 컴파일 언어다. C에서 영감받았으며, null 없음, 기본 불변성, 자동 메모리 관리를 특징으로 한다.
기본 문법
v
// 기본 구조
module main
fn main() {
// 불변이 기본 (변경 시 mut 필요)
name := '홍길동'
mut count := 0
// 조건식
result := if count == 0 { 'empty' } else { 'not empty' }
println('Hello, $name! result: $result')
}
// 함수
fn add(a int, b int) int {
return a + b
}
// 다중 반환
fn divide(a f64, b f64) (f64, bool) {
if b == 0 {
return 0, false
}
return a / b, true
}
val, ok := divide(10.0, 3.0)
if ok {
println(val)
}
구조체와 메서드
v
struct User {
name string
email string
mut:
score int // mut: 이후는 가변 필드
}
fn (mut u User) add_score(points int) {
u.score += points
}
fn (u User) to_string() string {
return '$u.name ($u.email): $u.score'
}
mut user := User{name: '홍길동', email: 'hong@example.com'}
user.add_score(100)
println(user.to_string())
// 인터페이스
interface Greetable {
greet() string
}
V 언어 특징
| 특징 | 설명 |
|---|
| null 없음 | Option 타입으로 대체 |
| 기본 불변 | mut 키워드로 명시적 가변 |
| 자동 메모리 | GC 선택적, 기본은 자동 해제 |
| 빠른 컴파일 | < 1초 (대규모 프로젝트도) |
| C 트랜스파일 | 읽기 쉬운 C 코드 생성 |
관련 문서