μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- νμ΄μ¬
- Python
- λ¬μ€νΈ
- μ€λΌν΄
- μ€λΌν΄DB
- νμ΄μ¬ μ±λ¦°μ§
- νμ΄μ¬ μ²Όλ¦°μ§
- λ¬μ€νΈ νλ‘κ·Έλλ° κ³΅μ κ°μ΄λ
- μλ° κΈ°μ΄
- νμ΄μ¬ μκ³ λ¦¬μ¦
- μ΄μ체μ
- java
- Python challenge
- λ°μ΄ν°λ² μ΄μ€
- Database
- μλ° κ°λ
- μ°λΆν¬
- λ¬μ€νΈ μμ
- Reversing
- C
- μκ³ λ¦¬μ¦
- λ°μ΄ν° ν΅μ
- OS
- Operating System
- λ°±μ€ λ¬μ€νΈ
- ubuntu
- data communication
- Rust
- λ°±μ€
- μλ°
Archives
- Today
- Total
IT’s Portfolio
[Rust] Start Rust (Day 6) - Common Programming Concepts [2] λ³Έλ¬Έ
Development Study/Rust
[Rust] Start Rust (Day 6) - Common Programming Concepts [2]
f1r3_r41n 2023. 1. 3. 23:25728x90
λ°μν
π¦ Rust Day 6
π³οΈ Common Programming Concepts
3οΈβ£ ν¨μ (functions)
- νλ‘κ·Έλ¨μ μ§μ
μ :
main function
- μλ‘μ΄
function
μ μΈ :fn
keyword - λ¬μ€νΈλ ν¨μμ λ³μ μ΄λ¦μ
snake case
μ¬μ© - λ¬μ€νΈμμ ν¨μμ μ μΈ μμλ μ€μνμ§ μμΌλ©° μ΄λμ μ μΈνλμ§κ° μ€μ
π€ ν¨μ 맀κ°λ³μ
- 맀κ°λ³μ(parameter) : ν¨μμ signatureμ ν¬ν¨λλ νΉλ³ν λ³μ
- μ΄ λ§€κ°λ³μμ ꡬ체μ μΈ κ° μ μ λ¬ν μ μμ
- ꡬ체μ μΈ κ° : μΈμ(argument)
- ν¨μ signatureμλ κ° λ§€κ°λ³μ νμ μ λͺ μν΄μΌ ν¨
π€ ν¨μ λ³Έλ¬Έμ ꡬ문과 ννμ
- ν¨μ λ³Έλ¬Έμ μ¬λ¬ κ°μ ꡬ문(statements)μΌλ‘ ꡬμ±λλ©°, μ νμ μΌλ‘ ννμ(expression)μΌλ‘ λλκΈ°λ ν¨
- λ¬μ€νΈλ ννμ μΈμ΄ κΈ°λ°
- ꡬ문과 ννμμ ꡬλΆνλ κ²μ λ§€μ° μ€μν¨
- βοΈ κ΅¬λ¬Έ
- μ΄λ€ λμμ μ€ννμ§λ§ κ°μ 리ν΄νμ§ μλ λͺ
λ Ή
let
keyword μ΄μ©ν΄ λ³μ μμ± ν κ° λμ- ν¨μ μ μΈ
- μ¦,
let
ꡬ문μ λ€λ₯Έ λ³μμ λμ λΆκ°λ₯ - λμ
λ¬Έμ΄ λμ
λ κ°μ 리ν΄νλ Cλ λ£¨λΉ κ°μ μΈμ΄μ λ€λ₯Έ μ
- Cλ λ£¨λΉ κ°μ μΈμ΄μμλ
x = y = 6
κ³Ό κ°μ ꡬ문μ μμ±νλ©΄ xμ y λ³μμ κ°μ΄ λͺ¨λ 6μ - νμ§λ§ λ¬μ€νΈμμ ꡬ문μ κ°μ 리ν΄νμ§ μμΌλ―λ‘ κ°μ κ²°κ³Όλ₯Ό μ»μ μ μμ
- Cλ λ£¨λΉ κ°μ μΈμ΄μμλ
- μ΄λ€ λμμ μ€ννμ§λ§ κ°μ 리ν΄νμ§ μλ λͺ
λ Ή
- βοΈ ννμ
- μ΅μ’
κ²°κ΄κ°μΌλ‘ νκ°(evaluate)λ¨
5+6
μ¬μΉμ°μ°μ11
μ΄λΌλ κ°μ΄ νκ°λ¨- ν¨μμ νΈμΆ
- 맀ν¬λ‘μ νΈμΆ
- μλ‘μ΄ λ²μ μ μΈ μ μ¬μ©νλ μ½λ λΈλ‘
- μ¦, ννμμ ꡬ문μ μΌλΆκ° λ μ μμ
- ννμμ λ§μ§λ§μ μΈλ―Έμ½λ‘ μ ν¬ν¨νμ§ μμ
fn main() { let x = 5; let y = { let x = 3; x + 1 }; println!("yμ κ°: {}", y); } // Result // yμ κ°: 4
- λ§μ½ μΈλ―Έμ½λ‘ μ μΆκ°νλ©΄ ννμμ΄ κ΅¬λ¬ΈμΌλ‘ λ°λμ΄ κ°μ 리ν΄νμ§ μμ
- μ΅μ’
κ²°κ΄κ°μΌλ‘ νκ°(evaluate)λ¨
π€ κ°μ 리ν΄νλ ν¨μ
- 리ν΄ν κ°μ νμ
μ
->
λ‘ μ§μ ν΄μΌ ν¨ - λ¬μ€νΈμμ ν¨μμ 리ν΄κ°μ ν¨μ λ³Έλ¬Έμ λ§μ§λ§ ννμ κ°
return
keywordλ‘ λ°νκ° μ§μ μ΄ κ°λ₯νμ§λ§ λλΆλΆμ ν¨μλ λ§μ§λ§ ννμμ κ²°κ³Όλ₯Ό 리ν΄ν¨
4οΈβ£ μ£Όμ
- λ κ°μ μ¬λμ μ¬μ© =>
//
- μ½λμ λμ μμ±ν΄λ λ¨
- νμ§λ§ λλΆλΆ μ£Όμμ κ΄λ ¨λ μ½λμ μμ€μ μμ±νλ κ²μ΄ μΌλ°μ
- λ¬μ€νΈλ λ¬Έμν μ£Όμ(document comments)μ΄λΌλ νΉλ³ν νμμ μ£Όμλ μ§μ
5οΈβ£ νλ¦ μ μ΄
- νλ‘κ·Έλ¨μ μ€ν νλ¦μ μ μ΄ν μ μλ κ°μ₯ μΌλ°μ μΈ κ΅¬μ‘°
- if ννμ
- loop
π€ if ννμ
if
keyword λ€μ 쑰건μ λΆμ¬- if λ¬Έμ 쑰건μ λ°λμ
boolean
νμ μ€ νλλ₯Ό 리ν΄ν΄μΌ ν¨ - 루λΉλ JS κ°μ μΈμ΄μ λ¬λ¦¬ λ¬μ€νΈλ
boolean
μ΄ μλ κ°μboolean
μΌλ‘ μλ λ³ν λΆκ°λ₯ else if
ννμμ λ무 λ§μ΄ μ¬μ©νλ©΄ μ½λκ° μ§μ λΆν΄λ³΄μ- μ½λ 리ν©ν λ§(refactoring) νμ =>
match
ννμ μ¬μ©
- μ½λ 리ν©ν λ§(refactoring) νμ =>
- if λ¬Έμ ννμμ΄λ―λ‘
let
ꡬ문μ μ μ© κ°λ₯fn main() { let condition = true; let num = if condition{ 1 } else { 0 }; println!("numμ κ°: {}", num); } // Result // numμ κ°: 1
- if ꡬ문μ κ° κ°μ§κ° 리ν΄νλ κ²°κ³Όκ° λͺ¨λ κ°μ νμ
μ΄μ΄μΌ ν¨
fn main() { let condition = true; let num = if condition{ 1 } else { "zero" }; println!("numμ κ°: {}", num); } // Result // error[E0308]: `if` and `else` have incompatible types
- Why?
- μ½λ λΈλ‘μ κ²°κ³Όλ λ§μ§λ§ ννμμ κ°μ νκ°νλ©° μ«μ μ체λ νλμ ννμ. if ννμ μ 체μ κ²°κ³Όλ μ΄λ€ μ½λ λΈλ‘μ΄ μ€νλλκ°μ λ°λΌ λ¬λΌμ§κΈ° λλ¬Έμ if ꡬ문μ κ° κ°μ§κ° 리ν΄νλ κ²°κ³Όλ λͺ¨λ κ°μ νμ μ΄μ΄μΌ ν¨
- λ¬μ€νΈλ λ³μλ₯Ό μ¬μ©νλ λͺ¨λ μ½λμ μ ν¨μ±μ κ²μ¬νκΈ° μν΄ μ»΄νμΌ μμ μ λ³μμ νμ μ΄ λ¬΄μμΈμ§ μμμΌ ν¨. λ³μμ νμ μ΄ λ°νμμ κ²°μ λλ€λ©΄ λ¬μ€νΈλ μ΄λ° μ ν¨μ± κ²μ¬ μν λΆκ°λ₯. κ·Έλ¬λ©΄ μ»΄νμΌλ¬μ κ΅¬μ‘°κ° λ 볡μ‘ν΄μ§λΏλλ¬ λ³μμ νμ λ³κ²½μ μΆμ ν΄μΌ νλ€λ©΄ μ»΄νμΌλ¬λ μ§κΈλ§νΌ μ½λμ μ€νμ 보μ₯ν μ μμ
π€ loop
loop
,while
,for
λ± μΈ κ°μ§ μ’ λ₯μ 루ν μ 곡- βοΈ
loop
keyword- 루νλ₯Ό μ€μ§νλΌκ³ λͺ μνμ§ μλ ν 무ν λ°λ³΅
break
keyword μ¬μ© κ°λ₯
- βοΈ
loop
μμ κ° λ¦¬ν΄νκΈ°- μ€λ λκ° μμ
μ μλ£νλμ§ μ¬λΆλ₯Ό νμΈνλ λ± μ€ν¨ν κ°λ₯μ±μ΄ μλ μμ
μ μ¬μλνλ κ²½μ°
loop
μ¬μ© - μμ μ κ²°κ³Όλ₯Ό λ€λ₯Έ μ½λμ μ λ¬ν΄μΌ ν μλ μμ
break
keyword λ€μμ 리ν΄κ° μΆκ°
- μ€λ λκ° μμ
μ μλ£νλμ§ μ¬λΆλ₯Ό νμΈνλ λ± μ€ν¨ν κ°λ₯μ±μ΄ μλ μμ
μ μ¬μλνλ κ²½μ°
- βοΈ
while
- 쑰건μμ΄ μΌμΉνλ λμμλ μ½λκ° μ€νλλ©°, κ·Έλ μ§ μμΌλ©΄ 루ν νμΆ
- βοΈ
for
μ μ΄μ©ν΄ 컬λ μ μ λ°λ³΅ μ²λ¦¬- iterator μ¬μ©
fn main() { let a = [1, 2, 3, 4, 5]; for i in a.iter(){ println!("Element value: {}", i); } } // Result // Element value: 1 // Element value: 2 // Element value: 3 // Element value: 4 // Element value: 5
- νμ€ libμ Range νμ
μ΄μ©
fn main() { for i in 1..6{ println!("Element value: {}", i); } } // Result // Element value: 1 // Element value: 2 // Element value: 3 // Element value: 4 // Element value: 5
- λ²μλ₯Ό λ€μ§μ΄μ μμ±νλ
rev
λ©μλμ κ°μ΄ μμ©fn main() { for i in (1..4).rev(){ println!("{}...", i); } println!("λ°μ¬!"); } // Result // 3... // 2... // 1... // λ°μ¬!
- iterator μ¬μ©
728x90
λ°μν
'Development Study > Rust' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Rust] Start Rust (Day 7) - Rust Example Script 1 [Temperature Converter] (0) | 2023.01.09 |
---|---|
[Rust] String Type (String, str) (0) | 2023.01.05 |
[Rust] Start Rust (Day 5) - Common Programming Concepts [1] (0) | 2023.01.03 |
[Rust] Start Rust (Day 4) - Guessing Game [3] (0) | 2022.10.27 |
[Rust] Start Rust (Day 3) - Guessing Game [2] (0) | 2022.08.23 |
Comments