Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- sdk
- sqlite
- 이클립스
- sts
- 배포
- EAS
- Navigation
- thymeleaf
- 시큐리티
- expo
- 안드로이드
- string
- mysql
- YAML
- 자바스크립트
- 앱
- 시놀로지
- Java
- DB
- react
- Admob
- 폰트
- Native
- springboot
- 스프링
- yml
- Android
- sql
- 로또
- spring
Archives
- Today
- Total
Dev JS Blog
코틀린(Kotlin) 정리 - 1 본문
728x90
이번에 코틀린 언어도 공부해볼겸 코틀린으로 안드로이드를 개발해볼겸
공부를 시작해봤다. ㅎㅎ
코틀린 멀티패러다임 언어 이다.
함수형 프로그래밍, 객체지향형 프로그램 언어이다.
기본적으로 세미콜론(;)을 쓰지 않는다.
var a = 20 // Int형으로 추론
var a: Int = 20 //Int형
var b = "Hello" // String형으로 추론
var b: String = //String형
var a: String // 초기화를 해주어야 사용이 가능하다.
a = "Hello"
var a: String? // null 사용가능. 초기화 안해도됨.
// function 은 fun 으로 사용한다.
fun sum(a: Int, b: Int): Int{ // 반환타입 Int
return a + b
}
// 자바의 void와 같이 반환이 없을경우 Unit 로 해준다.
// Unit은 생략이 가능하다.
fun init():Unit{}
// return을 생략하여 표현이 가능하다.
fun sum(a: Int, b: Int): Int = a+b
// Default 값을 설정할수있다.
fun sum(a: Int = 4, b: Int): Int = a+b
// vararg 를 이용하여 가변형인자를 받을수가 있다.
// fun(1,2) ==> 1+2 fun(1,2,3,4) ===> 1+2+3+4 가 된다.
fun avg(vararg numbers: Int): Int{
var result: Int = 0
for(num in numbers){
result += num
}
return result
}
람다식 (Lambda Expression) 이란?
익명함수의 하나. 이름없이 사용가능.
{x,y -> x+y}
함수형 프로그램밍의 장점 중 하나인것은
함수를 인자로 사용이 가능하다는 것이다.
// sumFunc에 들어오는 람다식함수는 Int,Int 두개의 변수를 받아 Int를 반환하는 함수이다.
// sum은 람다식을 받는 매개변수이다.
fun sumFunc(sum: (Int,Int)->Int, x: Int, y: Int): Int = sum(x,y)
// {x,y -> x+y} 라는 람다식함수를 넣어준다.
fun main(){
println(" >> "+ sumFunc({x,y -> x+y},10,20))
}
// 결과) 30
세미콜론부터 안쓰는것부터 살짝 어색한 감이 있지만.
금새 또 여러번 쓰다보면 세미콜론 쓰는게 귀찮아 질 수도..?
금방 또 적응하겠지.
확실히 어떤 한 언어라도 다룰 줄 안다면 습득 속도와 이해력 차이가 있다.
신입 개발자나 개발자를 준비하는 사람들이라면
이것저것 다 하려들지말고 뭐라도 한 언어라도 잘 다룰줄 알았으면 좋겠다.
결국 다 개발 언어는 새로운 언어더라도 기존 과거부터 써왔던 언어들을 공부했던 사람들이
더 편하게 더 직관적이게(?) 개선하여 언어를 만들어 낸 것이기 때문에
결국 다 비스무리하게 쓴다. 웬만한 툴에서 (ctrl + z)가 되돌리기 국룰인 것처럼
(함수명 쓰는 문법 방식 등등) 차이는 그 언어의 사상이나
문법의 조금 차이이기 때문에 그 차이는 그때마다 찾고 공부하면 되는 것이고
한 언어라도 잘 다루게 되면 짬에서 나오는 바이브(?)로 습득을 금방한다.
새롭게 처음부터 공부하니 뭔가 취업준비 했던 때도 생각나고 재밌다.
728x90
'옛날 창고 > 안드로이드' 카테고리의 다른 글
Inflate 간단 정리 (0) | 2021.06.28 |
---|---|
Failed to install the following Android SDK packages as some licences have not been accepted. 에러 해결 (0) | 2021.06.22 |
코틀린 - const val 과 val 큰 차이점 (0) | 2021.06.13 |
안드로이드 앱 광고넣기 (0) | 2020.05.13 |
Comments