2024/03/31 4

이번 주를 돌아보며 (0325~0331)

이번 주를 돌아보며 (0318~0324) 이번주 회사는 뭐 나쁘지 않았다. 아침에 출근해서 회사 헬스장에서 운동하는 걸 루틴으로 넣었는데 이것도 꽤나 괜찮은것같다. 아침에 한시간정도 하는데 유산소 비중이 높은 운동이어서 아침 sinawi.tistory.com 월요일엔 팀 회식이 있었는데 그 여파로 역병이 돌았다. 팀원 한두명씩 아프다고 하더니 오늘에 이르러선 다섯명 정도가 확진되었다. 사실 나도 약간 목이 칼칼한 느낌이 있었는데 지금(오후 8시) 기준으로는 말끔하게 사라졌다. 근데 왜 건강한건지 잘 모르겠다. 아침마다 운동해서 그런가..? 목요일에 코로나 양성이 떴다. 이번주는 아무 증상이 없었는데 목요일에 키트를 해보니 양성이 떴다. 사실 목요일에 키트할 생각도 없었는데 수요일에 회식하고 나서 그다음날..

OTHERS/내 생각 2024.03.31

Rust - 25. 고급 기능 (3) 고급 함수와 클로저, 매크로

너무 길어서 한번 더 끊음. 매크로 부분은 이해가 안가서 그냥 빠르게 읽고 넘어갈예정임 1.. 고급 함수와 클로저 1.1. 함수 포인터 fn add_one(x: i32) -> i32 { x + 1 } fn do_twice(f: fn(i32) -> i32, arg: i32) -> i32 { f(arg) + f(arg) } fn main() { let answer = do_twice(add_one, 5); println!("The answer is: {}", answer); } 일반함수를 함수에 전달할수 있음. 새로운 클로저를 정의하는 대신 이미 정의된 함수를 전달하고 싶을때 사용 매개변수에 fn 타입으로 정의하면됨. 1.2. 클로저 반환 클로저는(fn 포함) 반환 타입으로 사용될수 없음 트레이트 객체에 감..

STUDY/Rust 2024.03.31

Rust - 24. 고급 기능 (2) 고급 트레이트, 고급 타입

너무 길어서 한번 끊음 1. 고급 트레이트 1.1. 연관 타입 트레이트 메서드를 정의할때 자리표시자 타입을 시그니처에서 사용할 수 있게 함. 타입 자리 표시자와 트레이트를 연결함 트레이트의 구현자는 자리표시자 타입 대신 구체적인 타입을 지정함 제너릭과의 차이는 제너릭은 각 구현마다 타입을 명시해서 사용해야함. 타입을 여러 개 사용할수 있음 연관 타입은 한 타입만 사용 가능함 1.2. 기본 타입 매개변수 제너릭 타입 매개변수를 사용하면 제너릭 타입에 대한 구체적인 타입을 지정할수 있음 연산자 오버로딩(std::ops)에 쓰임 1.3. 완전 정규화 문법 (fully qualified syntax) 같은 이름의 메서드 호출하기 trait Pilot { fn fly(&self); } trait Wizard { ..

STUDY/Rust 2024.03.31

Rust - 23. 고급 기능 (1) Unsafe RUST

얼마 안남았다~~~ 오예~~~ 3월내로 끝낼듯 1. Unsafe Rust 러스트가 보증하는 것의 일부를 거부하고 해당 보증을 수동으로 유지하는 것에 대한 책임을 지는 방법 unsafe 키워드 이 키워드를 사용한 블록은 안전하지 않은 코드(안전하지않은 슈퍼파워)를 넣을 수 있다. 원시포인터(raw pointer) 역참조 안전하지 않은 함수 혹은 메서드 호출 가변 정적 변수 접근 및 수정 안전하지 않은 트레이트 구현 union 필드 접근 위 다섯 가지 기능 제외한 다른 기능은 안전성 검사를 수행한다. 안전하지 않은 코드는 유효한 방식으로 메모리에 접근하도록 보장해야한다. unsafe 블록을 작게 만드는 편이 좋다. 문제의 원인을 더 쉽게 추적할수 있음 안전하지 않은 코드를 분리하려면 추상화 하고 api를 제..

STUDY/Rust 2024.03.31