여전히 두 프로그래밍 언어를 병행해서 공부하다보니, 나도 모르게 헷갈리게 사용하는 경우가 많다. 앞에서 차이점 몇가지를 얘기했었는데, 나머지도 정리해 보려한다. 변수 Kotlin 값 변경이 가능하게 하려면 ‘var’, 값 변경이 불가능하게 하려면 ‘val’로 정의한다. 값이라고 했지만, 사실은 레퍼런스의 의미로 객체의 경우 다른 객체를 지정하도록 변경하지 못한다. Python 동적타입 언어답게 아무런 키워드 없이 그냥 사용 가능하다. 함수 Kotlin…
[카테고리:] 코틀린
Kotlin 관련 메모
Kotlin vs Python : Lambda function
나처럼 옛날 개발자는 별 관심 없던 이름중에 하나가 람다 함수였다. Lisp같은 고오오오급 함수형 프로그래밍에서나 쓴다고 주워듣고 있었는데, 오랫만에 코딩하다보니 필수 아이템이 되어 있네. 아주 새로운 개념은 아니고 실용적으로 간편하게 쓸 수 있는 anonymous function 정도로 알면 될거 같다. Java에서 너저분하게 사용했던 anonymous function의 자리에 lambda function을 넣으면 매우 간결해진다. python lambda arguments : expression 위와…
Kotlin vs Python : ‘as’ keyword
Kotlin과 Python이 같이 갖고 있는 키워드중, ‘as’가 있는데 이것 또한 다르게 쓰인다. Kotlin Kotlin에서 ‘as’는 명시적 캐스팅(형변환) 연산자이다. 공식 문서 참조. 문서에 따르면, 이경우 형변환에 실패했을 때, exception이 발생한다. 그래서 Unsafe cast operator라고 한다. 반면에, ‘as?’를 사용하면 형변환 실패시 null을 반환한다. 그래서 Safe cast operator라고 부른다. Python Python에서 as 는 alias를 의미한다. module import와 리소스…
Kotlin vs Python : ‘not’ keyword
코틀린하고 파이썬을 같이 공부하면서 차이점을 비교하는건 흥미롭다. 근데, 이게 시간이 지날수록 더욱 헷갈리기 시작한다. 그래서 짧지만 생각날 때마다 기록해 두려고. 이번 주제는 ‘not’. Kotlin 일반적인 비교연산자에 ‘같지 않다’는 둘 다 동일하게 ‘!=’을 쓴다. Kotlin에서는 이와 동일하게, ‘not’의 의미로 ‘!'(exclamation mark)를 쓴다. 위의 예제와 같은식이다. ‘not’은 Kotlin 키워드에 존재하지 않는다. operator를 overloading 할 때만 다음과 같이…
.gitignore for IntelliJ
코틀린 미니 계산기 프로젝트를 github에 업로드 했는데, 다시 받아보니 IntelliJ에서 빌드가 안되는거다. 아… JVM의존성도 있고, 빌드 설정이 git에 전혀 반영되지 않아서 intelliJ 설정들도 올렸다. 그런데, 이게 애매하단 말이지. IntelliJ가 생성해준 “.idea”폴더와 “projectname.iml” 파일을 올렸는데, 이걸 version control system으로 관리하는게 맞는걸까? 빌드 세팅은 분명 필요하긴한데 흠. 찾아보니, ItelliJ 제작사의 가이드가 있다. https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-How-to-manage-projects-under-Version-Control-Systems 요약하자면 필요한 파일만 골라서…