on
[ Rustπ¦ ] Rust μ 보νΈμ κΈ°λ₯
Rust μ μΈμ΄λ‘μμ 보νΈμ μΈ κΈ°λ₯μ μ μ μλ€.
Rust μ μΈμ΄λ‘μμ κΈ°λ³Έμ μμ±
- λ³μμ λΆλ³μ±
- λ°μ΄ν° νμ
- ν¨μ
- μ£Όμ
- μ μ΄λ¬Έ
Rustλ λ€λ₯Έ μΈμ΄μ κ°μ΄ λ³μ / ν¨μ / μ£Όμ / μ μ΄λ¬Έ λ±κ³Ό κ°μ κΈ°λ³Έμ μΈ μμλ€μ κ°μ§κ³ μλ€.
μ΄ μ€, Rustμ νΉμ΄μ μ΄λΌ νλ©΄, λ³μμ λΆλ³μ±/κ°λ³μ±μ΄ μ‘΄μ¬νλ€λ μ μ΄λ€.
λ³μμ λΆλ³μ± ( variable and immutable )
Rust μμλ λ³μλ₯Ό let
ν€μλλ‘ μ μΈνλ€.
let x
λͺ
λ Ήμ ν΅ν΄ λ³μ x λ₯Ό μ μΈνκ² λλ©΄, λ³μ x
λ κΈ°λ³Έμ μΌλ‘ λΆλ³μ±(immutable) μ μ±μ§μ κ°μ§κ² λλ€.
μ¦, λ³μ x
μ κ°μ λμ΄μ λ°κΏ μ μλ€λ λ»μ΄λ€.
λ³μμ κ°μ λ°κΎΈκ³ μΆλ€λ©΄, let
λ€μμ mut
ν€μλλ₯Ό λΆμ¬μ£Όλ©΄ λλλ°, let mut x
μ κΌ΄μ΄ λλ€.
μ μ½λλ₯Ό μ€ννκ² λλ©΄, μλμΈ κ°μ μ»΄νμΌ μλ¬κ° λ°μνκ² λλ€.
μ΄μ²λΌ λ³μμ κΈ°λ³Έμ μΈ ννκ° λΆλ³μ μΈ κ²μ, κ°μ΄ λ°λμ΄μΌ νλ λ³μλ νλ‘κ·Έλλ¨Έκ° λͺ μμ μΌλ‘ νκΈ°νκ² λ§λ€μ΄, λ³μ κ°μ΄ λ°λλ λ°μμ λ°μνλ μλ¬λ₯Ό μ€μ΄κΈ° μν¨μΌλ‘ 보μΈλ€.
λ°μ΄ν° νμ ( data type )
Scalar
(integer/float/boolean/char)Compound
(tuple/array/struct/enum/trait)
Rust μμ λ°μ΄ν° νμ
μ ν¬κ² Scalar
μ Compound
νμ
μΌλ‘ λλμ΄ μ§λ€.
Scalar
μ νλμ κ°μΌλ‘ ννλλ λ°μ΄ν° νμ
μ λ§νκ³ ,
Compound
μ μ¬λ¬ λ°μ΄ν°μ μμΌλ‘ ννλλ νμ
μ λ§νλ€.
integer
: i8
, u8
, i16
, u16
, i32
, u32
float
: f32
, f64
char
: 1~5 byte ( default UTF-8 encoding )
ν¨μ ( function )
Rust μμ ν¨μλ fn
ν€μλλ‘ μ μΈνκ² λλ€.
νΉμ΄νκ² ν¨μλͺ
μ snake_case
λ‘ μ νλλ€.
μλ₯Ό λ€μ΄, μλμ κ°μ ν¨μλ₯Ό μ»΄νμΌ νκ² λλ©΄,
μλμ κ°μ΄ μ»΄νμΌλ¬κ° μλμΌλ‘ ν¨μλͺ
μ snake_case
λ‘ μμ ν΄ μ€λ€.
ν¨μλ ννμ(expression)
과 ꡬ문(statement)
μΌλ‘ μ΄λ£¨μ΄ μ§λλ°,
ννμ
μ λ°νκ°μ΄ μκ³ , ꡬ문
μ λ°νκ°μ΄ μλ€.
λν, ννμ
μ μΈλ―Έμ½λ‘ μ΄ λΆμ§ μκ³ , ꡬ문
μ μΈλ―Έμ½λ‘ μ΄ λΆλλ€.
μλ₯Ό λ€μ΄, μμ μ€λͺ
νλ x = 1
κ³Ό κ°μ λμ
μ ꡬ문μ΄λ€.
λ°ννλ κ°μ΄ μκΈ° λλ¬Έμ, μΌλ°μ μΌλ‘ λ€λ₯Έ μΈμ΄μμλ μ¬μ© κ°λ₯ νλ y = x = 1;
κ³Ό κ°μ μμ μ¬μ©μ΄ λΆκ°λ₯ νλ€.
ν¨μμ μ μΈμ μμ κ°μ΄ λ°ννμ΄ μλ κ²½μ° ->
μΌλ‘ νκΈ°ν΄ μ£Όκ³ , νλΌλ―Έν°λ x: i32
μ κ°μ΄ λ°μ΄ν° νμ
μ λͺ
μν΄ μ£Όμ΄μΌ νλ€.
λμΉκ° λΉ λ₯Έ λΆμ μ΄λ―Έ μμμ±κ² μ§λ§, λ°νκ°μ΄ μλ hello()
λ μΈλ―Έμ½λ‘ μΌλ‘ λλλ println!();
μ ꡬ문μΌλ‘ μ’
λ£λκ³ ,
λ°νκ°μ΄ μλ λλ¨Έμ§ ν¨μλ€μ μΈλ―Έμ½λ‘ μ΄ μλ ννμμΌλ‘ μ’
λ£λλ€.
μ£Όμ ( comment )
λ€λ₯Έ μΈμ΄μ λ§μΉκ°μ§λ‘ //
μ΄λ /**/
μΌλ‘ μ£Όμμ λ¬ μ μμΌλ©°,
λ¬Έμν μ£Όμμ΄λΌλ κ²μ΄ μλ€κ³ νλλ°, μ΄λ λμ€μ λ€λ£¨κ² λ€.
μ μ΄λ¬Έ ( control statement )
if else
loop
while
for
λ€λ₯Έ μΈμ΄μ λ§μ°¬κ°μ§λ‘ if else
λ¬Έ, while
λ¬Έ, for
λ¬Έμ΄ μ‘΄μ¬νλ€.
μ΄ μ€, for
λ¬Έμ ννλ C μ€νμΌμΈ for(;;)
μ μ§μνμ§ μμΌλ©°,
python μ²λΌ for var in expression { }
μ ννλ§ μ§μνλ€.
μλ₯Ό λ€μ΄, 1λΆν° 10 κΉμ§ μΆλ ₯νκ³ μΆμΌλ©΄ μλμ κ°μ΄ νλ©΄ λλ€.