코드의 응집도랑 가독성을 위해 몇몇 기능은 전통적인 OOP의 '메소드'처럼 구현하는 게 더 좋을 때가 있음.이걸 순수함수 느낌을 그대로 살리면서 객체지향적으로 뭉쳐놓을 수 있는 게 진짜 좋은거 같음
그럼 넌 고랭이야!!
고랭도 trait 비슷한거 있음?
찾아보니까 Typescript도 얼추 비슷하게 흉내는 낼 수 있더라. trait이 좋은 문법이긴 한가봐
고랭 메서드는 그냥 리시버를 첫번째 인자로 묵시적으로 넘기는거임 그래서 nil이 메서드 호출해도 문제 없음. 딱 본문대로 순수 함순데 가독성과 응집성을 위해 메서드처럼 보이는것.
Trait가 Go에서는 Interface 그 자체잖어 비슷한게 Swift에서는 Protocol이고 파이썬도 Protocol 새로 추가해 넣었구만
ts 에서 trait 이 됨??
swift(protocol+extension), rust(traits+impl) 저런기능 있는거보니까 컴파일 기반 + static dispatch되는애들은 지원해줄 수 있는거누?
trait 구현 자체는 동적으로도 얼마든지 가능한거 같음. 알맞게 덕타이핑이 되었냐를 static하게 볼 수 있는지랑은 별개로.
러스트에는 dyn 키워드로 동적 trait도 사용가능함
루비 믹스인이랑 php 도 trait 있음
이번에 Dynamic Trait Upcasting 추가할라다 빠꾸먹은거같던데