일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Visual Studio
- 배열
- Javascript
- Kotlin
- c
- 프로그래밍
- 백준
- VS ERROR
- Windows
- c++
- 리뷰
- Desktop
- 김성엽
- 지식나눔강좌
- Direct2D
- tipssoft
- doit코틀린프로그래밍
- c#
- 포인터
- 연산자
- 이지스퍼블리싱
- 티스토리
- Win32
- Tips강좌
- 함수
- 문법
- Tips프로그래밍강좌
- Programming
- CS
- 알고리즘
- Yesterday
- Today
- Total
목록Kotlin (21)
F.R.I.D.A.Y.
이전 시간에 람다식의 기초 부분을 배웠다면 이번엔 람다식을 조금 더 심도 있게 다뤄보겠습니다. 람다식의 이용 인자에 사용하기 인자에 사용하는 방법은 여러 가지가 있습니다. 이번에 소개하는 문법은 인자의 마지막에 들어가는 람다식은 소괄호 밖으로 빼낼 수 있다는 것입니다. 람다식 두 개를 인자로 받는 테스트 함수를 작성해보겠습니다. fun TestFunc(lamb1:()->Unit, lamb2:()->Unit){ lamb1() lamb2() } 이 함수에는 단순 출력을 하는 람다식을 넣을 것입니다. 코드를 단순하게 하기 위해서 받을 인자도, 반환하는 인자도 존재하지 않는 람다식으로요. fun TestFunc(lamb1:()->Unit, lamb2:()->Unit){ lamb1() lamb2() } fun m..
이전 시간에 우리는 고차 함수에 대해 배웠습니다. 함수를 인자로 넘기는 방법도 배웠죠. 그런데 이전 시간의 범위에는 포함되지만, 조금 더 많은 이야기를 위해 따로 빼놓은 것이 있습니다. 바로 람다식(Lambda Expression)입니다. 이번 시간에는 이 람다식에 대해 배워보겠습니다. 함수를 인자로 넘기기 이전 시간에 함수를 인자로 넘기는 방법에 대해 배웠습니다. 그때 어떻게 사용하던가요? fun sum(a:Int, b:Int){ println("입력 두 값의 합은 ${a + b}") } fun TestFunc(vSum:(Int, Int)->Unit){ vSum(5, 4) } fun main(args:Array){ TestFunc(::sum) } 인자로 들어가는 함수 앞에 함수 참조 기호(::)를 입력..
이전 시간에 우리는 언어의 패러다임을 배웠습니다. 그 내용에는 일급 객체에 대한 내용도 함께 실려 있는데요, 이번 시간에는 일급 객체, 특히나 고차 함수에 대해 알아보겠습니다. 고차 함수 먼저 고차 함수가 무엇인지 알아보겠습니다. 고차 함수는 "함수를 인자로 사용하거나, 함수를 반환하는 함수"입니다. 달리 이야기하면, 일급 객체(일급 함수)를 서로 주고받을 수 있는 함수가 있다면 그 함수가 고차 함수가 되는 것입니다. fun main(args:Array){ TestFunc() } fun TestFunc(): Int{ return sum(2, 4) } fun sum(a:Int, b:Int) = a + b 이 코드에서는 TestFunc()가 고차 함수의 조건을 만족하고 있습니다. 함수를 인자로 활용하지는 않..
이전 파트의 끝머리에서 15번째 포스트는 람다식이 될 것이라고 했습니다. 그러나 람다식을 배우기 전에 꼭 알아두어야 할 필요가 있다고 생각한 것이 생겨서 람다식을 후순위로 미루게 되었습니다. 이번엔 함수형 프로그래밍이 무엇인지 알아봅니다. 언어의 패러다임 세상에는 많은 프로그래밍 언어가 존재합니다. C/C++, Java, C#을 시작으로 python, Go, Kotlin, Javascript[#ECMAScript 현재 JS는 기존의 오명을 씻고 표준을 잘 제정해 여태 이 언어를 싫어하던 개발자들도 포섭하는 행태를 보이고 있습니다. 이전의 JS와는 많은 차이를 보이고 있으니 관심 있게 지켜보셔도 좋습니다]까지. 이들 언어는 각자 필요에 의해 만들어진 언어로서 언어가 지향하는 방향과 그 패러다임이 다릅니다...
오랜만에 코틀린 포스트를 다시 시작하는 과정에서 오류를 찾았다. Kotlin Playground: Edit, Run, Share Kotlin Code Online play.kotlinlang.org 위 링크의 코드인데, 확인해보면 오류가 발생하는 것을 알 수 있다. fun abs(a:Int):Int{ if(a > 0) return a return -a } fun main(args:Array) { for(i in 1..5){ print("${i}번 째 입력:") val input:Int = readLine()!!.toInt() var ret:Int = abs(input) if(ret > 150){ ret -= 150 } println("${input}의 계산 결과는 ${ret}입니다.") } } 이에 반해..
함수 파트에서 떨어트리고 지금 나온 인라인&익명 함수입니다. 두 문법은 사실 함수 파트를 다룰 때 이어서 함께 작성해도 되지 않았을까 싶은 생각이 듭니다. 이미 지나가버린 걸 어떻게 하겠어요? 시작합니다. 함수의 준비 우리가 특정 작업을 한다고 했을 때, 사전 작업으로 무엇을 할까요? 먼저 작업에 필요한 물건을 가져오거나, 환경을 조성하겠죠. 제가 블로그에 글을 쓰기 위해 컴퓨터를 켜고 로그인을 하는 것처럼 말이죠. 우리 프로그램도 각 작업을 하기 위해서는 사전 작업이 필요합니다. 프로그램은 거대한 하나의 구조물이라 볼 수 있습니다. 이 거대한 구조물을 하나하나 쪼갠 것이 함수죠. 스택 작업 함수 파트에서 봤지만 함수에는 인자를 넘겨줄 수 있습니다. 이렇게 인자로 전달된 값들은 매개 변수의 값이 되는데요..
우리가 살면서 목돈을 마련하는 이유는 무엇일까요? 미래를 예측할 수 없기 때문에. 즉, 만일의 상황이 발생했을 때 이를 대비하기 위해 목돈을 마련해둡니다. 프로그램에서도 이렇게 목돈과 같은 문법이 존재합니다. 이번 시간에는 프로그램에서 갑작스럽게 발생할 수 있는 오류를 대비하는 예외 처리를 배워봅니다. 문제 이해하기 0으로 나누기 사용자로부터 두 수 A와 B를 받아서 A/B의 결과를 출력하는 프로그램을 만든다고 생각해보겠습니다. fun main(args:Array){ var a:Int var b:Int print("A 값 입력: ") a = readLine()!!.toInt() print("B 값 입력: ") b = readLine()!!.toInt() println("A / B = ${a/b}") } ..
책에서는 영역입니다. 책은 람다식(Lambda expression), 인라인 함수(inline function) 등 구성에 대해서는 이미 나왔습니다. 프로그램을 처음 배운다면 람다식이나 인라인 함수 등은 솔직히 어려울 수 있습니다. 그래서 후순위로 미뤄두고 기본적인 문법 사항이 모두 포스트 된 다음에 글을 쓰려고 합니다. 그래서 return 키워드를 이용한 제어는 다른 포스트에서 후술 하겠습니다. 흐름 제어하기 이전 시간에 반복문에 대해 알아봤습니다. 이 문단에서는 반복문의 흐름을 제어하는 방법을 알아볼 것입니다. break 코틀린에서는 break라는 키워드가 존재합니다. 먼저 break란 단어의 의미를 알아보겠습니다. 반복문이라는 흐름을 깨버리는 것이 break라고 생각할 수 있습니다. 실제로도 그렇게..
이전 시간에 for 구문에 대해 알아봤습니다. 이번엔 while, do-while 반복문에 대해 알아보겠습니다. while 구문 사람마다 성향 차이가 있듯이 코드를 작성하는 사람마다 선호하는 반복문이 있습니다. 그래서 여러 반복문을 제공하는 것이겠죠. 그런데 무한 반복을 하는 경우에는 while을 사용하곤 합니다. 그런데 코틀린에서는 for 반복문과 while 반복문이 서로 완벽히 하는 일이 다른 것 같네요. for 반복문이 범위를 정해서 하도록 강제한다면, while 반복문의 경우에는 조건식(평가식)이 참(true)인 경우에만 반복하도록 합니다. 구조 코틀린 while 구문의 구조는 아래와 같습니다. while(expression){ //commands } 간단히 소개한 것처럼 expression을 평..
만일 100개의 정보를 일일이 확인하는 과정을 직접 손으로 작성해야 한다면, 어떻게 하실 건가요? 오늘은 분기 제어 구문과 함께 프로그램에서 양대 산맥으로 생각할 수 있는 반복문에 대해 알아봅니다. for 구문 많은 경우에서 사용하는 for 구문입니다. while, do-while 반복문에 비해 높은 사용 비중을 가지고 있습니다.[# 초기화, 종결, 증감 식이 한 줄에 표현되어있기 때문이라는 것이 우세합니다.] 코틀린에서는 아래처럼 for 구문을 구성할 수 있습니다. 구조 for(bar in (min)..(max)){ //commands } bar는 for 구문이 반복되며 증감하는 값을 가지는 변수입니다. 기존의 변수 선언 방식에서 사용하는 var를 for 반복문에서는 사용할 수 없습니다. 사용 실제 코..