코틀린에서의 함수
함수
함수는 호출될 때만 실행되는 코드블록입니다.
함수는 특정 작업을 수행하는데 사용되고 메소드라고도 불립니다.
매개변수를 함수에 전달 받을 수 도 있습니다.
함수 생성
fun function() {
println("Function")
}
fun 이라는 키워드를 사용하고 함수의 이름을 쓴 뒤 () 를 붙이면 됩니다.
함수 호출
fun myFunc() : Unit {
println("Function")
}
fun main() {
myFunc()
myFunc()
myFunc()
}
함수를 실행하기 위해서는 main에 함수를 호출해야됩니다.
함수는 몇 번이고 호출할 수 있습니다.
Myclass().myFunc()
클래스에 존재하는 멤버함수를 호출할 때는 클래스.멤버함수로 불러올 수 있습니다. 클래스 인스턴스를 생성했다면 클래스인스턴스.멤버함수로 호출하면 됩니다.
함수의 매개변수
fun myFunc(name : String, num : Int) : Unit {
println(name + " " + num)
}
fun main() {
myFunc("hyun", 1)
myFunc("choi", 2)
myFunc("park", 3)
}
매개변수는 여러 개를 보낼 수 있으며 여러개를 보낼 땐 콤마(,)로 구분해주면 됩니다.
매개변수는 함수에서 자료형을 지정해주어야 합니다.
함수의 기본인수
fun helloname(name: String = "Guest") {
println("Hello, $name!")
}
fun main() {
helloname("Alice") // Hello, Alice!
helloname() // Hello, Guest!
}
기본인수는 함수를 호출할 때 매개변수를 생략하면 기본인수로 설정한 값이 매개변수에 할당됩니다.
fun helloname(name: String = "Guest", year : Int = 0, cm : Int = 0) {
println("Hello, $name! " + years + "years old " + cm + "cm")
}
fun main() {
helloname("Alice", year = 20) // Hello, Alice! 20years old 0cm
helloname() // Hello, Guest! 0years old 0cm
}
기본인수의 순서에 상관없이 기본인수에 값을 할당할 수 있습니다.
가변 매개변수
fun sum(vararg numbers: Int): Int {
var total = 0
for (number in numbers) {
total += number
}
return total
}
fun main() {
val result1 = sum(1, 2, 3)
val result2 = sum(10, 20, 30, 40)
val result3 = sum()
println(result1) // 6
println(result2) // 100
println(result3) // 0
}
매개변수는 vararg를 사용하면 여러 개의 매개변수를 받을 수 있습니다. 배열형태로 매개변수를 받아오기 때문에 반복문 for를 사용해서 각각의 값들을 읽어야합니다.
값 반환
fun myFunc(num : Int) : Int {
return num * 3
}
fun main() {
myFunc(1)
myFunc(2)
myFunc(3)
}
값을 반환하려면 함수 뒤에 반환값의 자료형을 명시해 줘야합니다.
fun myFunc(num : Int) : Unit {
println(num * 3)
}
fun main() {
myFunc(1)
myFunc(2)
myFunc(3)
}
반환 값이 없는 경우에는 :Unit을 붙여주어야 합니다. :Unit의 경우 생략해도 됩니다.
fun myFunc(num : Int) = num * 3
fun main() {
myFunc(1)
myFunc(2)
myFunc(3)
}
반환 자료형을 지정하지 않고 = 연산자를 사용할 수 도 있습니다.
함수의 범위
지역 함수
fun outFunc() {
println("out function")
fun inFunc() {
println("inner function")
}
inFunc()
}
fun main() {
outFunc()
}
로컬함수 안에 함수를 선언하여 이너 함수라고 불리는 지역 함수는 로컬함수 내에서만 접근이 가능하고 외부에서는 접근이 불가능합니다.
멤버 함수
class Sample {
fun myFunc() {
println("hello world")
}
}
fun main() {
val s = Sample()
s.myFunc()
}
클래스 내부의 함수를 멤버함수라고 부르며 멤버함수를 부를때는 .을 사용해서 호출합니다.
출처
W3Schools.com
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
Functions | Kotlin
kotlinlang.org