Log Stash

as an Industrial Personnel

LINQ 2

C#: object => IEnumerable<object>

1. Enumerable.Repeat() C#으로 코드를 짜다보면 종종 어떤 하나의 객체를, 그 객체를 담고 있는 IEnumerable로 변환해야 하는일이 종종 생긴다. 그땐 Enumerable.Repeat()을 사용하면 편하다.예를들어, 어떤 메소드 중간에 객체 obj가 있고, 이것을 IEnumerable 타입으로 만들어서 반환해야 한다고 생각해보자. GameObject obj; 가장 단순하게 생각해보자면, List 컨테이너를 하나 할당해서 그 리스트에 값을 집어넣을 수 있다. List list = new List(1); list.Add(obj); return list; 유니티3d 엔진의 코루틴 기능을 알고 있다면, C#의 발생자 문법을 사용하는 방식도 생각해 볼 수 있겠다. IEnumerable To..

프로그래밍 2017.11.21

Using Linq in Unity3d

애플의 64비트 정책으로 ios에선 il2cpp를 필수로 사용해야 한다는 점 덕분에 유니티 엔진에서 Linq를 사용할 수 있게 되었다. (Thanks apple) 예전에 안드로이드 앱 개발을 할 때 '비동기 로직을 동기처럼 사용할 수 있다'는 말에 홀려 RxJava를 접했던 적이 있었다. 그 당시엔 내가 Promise, Future나 함수형 프로그래밍에 대한 필요성이나 개념이 없어서도 그랬지만, 당시엔 Rx에 대한 튜토리얼이나, Best practice 관련된 문서가 거의 없었기 때문에 (물론 내가 못 찾았을 수도 있지만) 지금 보면 아주 괴상망측한 코드를 만들어 냈었다. 이후에 'Funtional thinking' 책을 읽고, 자바스크립트에서 Promise 패턴을 써보면서 내가 이전에 어떤식으로 코드를..

프로그래밍 2017.10.29