fun main(args: Array<String>) {
println("Hello World!")
}
fun
args: Array<String>
변수명: 파라미터 타입
형식Array<>
[]
println()
fun 함수명(파라미터명: 파라미터타입, ...) : 함수리턴타입 {
함수 본문
}
# 2
fun statement(name: String, age: Int):String {
return if (age >= 30) "old" else "cute"
}
# 3
fun expression(name: String, age: Int) = if (age >= 30) "old" else "cute"
식 vs 문
하나의 값이 되는 것 vs 값을 반환하지 않는 것
{}
: 블록=
+ 식
val 변수명: 타입
val 변수명 = 초기화 값
val 변수명: 타입 = 초기화 값
val
: Valuefinal
var
: Variable$변수명
삽입{}
이용{}
이용fun main(args: Array<String>) {
val array = arrayOf("1번", 2)
val doubls = 3.42e4
val ints = 30
val name = "fortice"
println("${name}test $ints $doubls ${array[0]}")
}
# 자바
public class Person {
private String name;
private String nickname;
private Boolean isPerson;
Person(String name, String nickname, Boolean isPerson) {
this.name = name;
this.nickname = nickname;
this.isPerson = isPerson;
}
public String getName() {
return this.name;
}
public String getNickname() {
return this.nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public Boolean isPerson() {
return this.isPerson;
}
public void setPerson(Boolean isPerson) {
this.isPerson = isPerson;
}
}
# 코틀린
class Person(val name: String, var nickname: String, var isPerson: Boolean)
val
: Getter 자동 생성var
: Getter/Setter 자동 생성isXXX
의 경우 (is로 시작)name = person.name
== name = person.getName()
person.name = "name"
== person.setName("name")
# 블록 구문
class Person(var name: String) {
var name: String
get() {
return null ? "널" : "이름이"
}
}
# 식 구분
class Person(var name: String) {
var name: String
get() = null ? "널" : "이름이"
}
enum class RightNose {
JH, DR, WJ, TH, JH, GH, YJ, BC
}
enum class
사용enum
: 소프트 키워드 - 다른 곳 앞에 사용 가능class
: 키워드;
필수enum class RightNose(val age: Int) {
JH(1), DR(1), WJ(1), TH(1), JH(1), GH(1), YJ(1), BC(1);
}
fun student(age: Int) =
when (age) {
8 -> "초등학생"
14,15,16 -> "중학생"
17,18,19 -> "고등학생"
20 -> "대학생"
else -> throw Exception("NOT STUDENT")
}
fun caseSet(seed1: Seed, seed2: Seed) =
when (setOf(seed1, seed2)) {
setOf(TH,JH) -> "Webooster"
setOf(JH,YJ) -> "Gamewood"
else -> throw Exception("NOT TEAM")
}
fun caseNoParam(emp: Emp) =
when {
emp=="주임" -> "막내"
emp=="대리" -> "사수"
else -> throw Exception("선배님")
}
is
: 자바의 instanceof
if(s is Seed) s.programing()
val
이어야 함별다르게 추가한 기능이 없음.
그대로 사용
..
연산자 사용val oneToTen = 1..10
downTo 1
step 2
0 until n
'A'..'F'
map: TreeMap<Char, String>
(key, value) in map
c in 'a'..'z'
== 'a' <= c && c <= 'z'
catch (e: Exception) {}