Kotlin Online Compiler : https://play.kotlinlang.org/
Kotlin Playground: Edit, Run, Share Kotlin Code Online
play.kotlinlang.org
var / val
- val : 상수 (불변 : immutable type)
- var : 변수 (가변 : mutable type)
-> 공통적으로 초기 값을 할당하지 않으면 반드시 타입 명시, 컴파일러가 타입을 추론할 수 있으면 생략 가능
String Template
fun main() {
//String Template
val name = "huiyu"
val lastName = "eun"
println("my name is ${name + lastName} ")
}
조건식
fun maxBy(a : Int, b : Int {
if (a > b) {
return a
} else {
return b
}
}
//간단하게
fun maxBy2(a : Int, b : Int) : Int = if(a>b) a else b
when : switch 같음
fun checkNum(score : Int) {
when(score) {
0 -> println("this is 0")
1 -> println("this is 1")
2,3 -> println("this is 2 or 3")
else -> println("I dont' know")
}
var b : Int = when(score) {
1->1
2->2
else ->3
}
//90~100 -> in 90..100
when(score) {
in 90 .. 100 -> println("You are genius")
in 10 ..80 -> println("Not bad")
else -> println("okay")
}
}
Array and List
// List : 값이 변경 안됨
// MutableList : 값 변경 가능
fun array() {
val array : Array<Int> = arrayOf(1,2,3)
Val list : list<Int> = listOf(1,2,3)
val array2 : Array<Any> = arrayOf(1,"d", 3.5f)
val list2 : List<Any> = listOf(1, "d", 11L)
array[0] = 3
var result : Int = list.get(0)//get만 가능
var arrayList : ArrayList<Int> = arrayListOf<Int>()
arrayList.add(10)
arrayList.add(20)
}
반복문
fun forAndWhile() {
val students : ArrayList = arrayListOf("joyce", "james", "jenny", "jennifer")
for( name : String in students) {
println("${name}")
}
var sum : Int = 0
//step : 2칸씩 가라
for (i : int in 1..10 step 2)
sum += i
}
println(sum)
//10부터 1로 가라
for (i : int in 10 downTo 1){
}
for(i : int in 1 until 100) //1부터 99까지 반복, 1..100:1부터100까지 반복
var index = 0
while(index < 10) {
println("current index : ${index}")
index++
}
}
val students : ArrayList<String> = arrayListOf("joyce", "james", "jenny", "jennifer")
for ((index, name) in students.withIndex())
{
println("${index+1}번째 학생 : ${name}")
}
nonnull - nullable
fun nullCheck() {
//NPE : Null Pointer Exception
var name : String = "joyce"
var nullName : String? = null
var nameInUpperCase : String = name.toUpperCase()
var nullNameInUpperCase : String = nullName?.toUpperCase()
}
?:
val lastName : String? = null
//lastName이 null이 아니면 사용. null이면 ?: 뒤에 내용 사용
val fullName : String = name + " " + (lastName?: "No lastName")
!!
fun ignoreNulls(str : String?){
val mNotNull : String = str!! //str은 null이 아니야!!
val upper : String = mNotNull.toUpperCase()
val email : String?= "joycehongXXX@nana.com"
email?.let{
println("my email is ${email}")
}
}
클래스
class Human(val name : String = "Anonymous") {
constructor(name : String, age : Int) : this(name){
println("my name is ${name}, ${age}years old")
}
init {
println("New human has been born!!")
}
fun eatingCake() {
println("This is so yummmmyyy")
}
}
fun main() {
val human = Human("minsu")
human.eatingCake()
println("this human's name is ${human.name}")
}
상속
open class Human{
open fun singASong(){
println("lalala")
}
}
class Korean : Human() {
override fun singASong(){
super.singASong()
println("라라라")
}
}
https://www.youtube.com/watch?v=IDVnZPjRCYg
728x90
'Software Development' 카테고리의 다른 글
Kotlin - 고급문법 (0) | 2022.04.30 |
---|---|
개발자에서 아키텍트로 - Chapter1. 소프트웨어 아키텍트가 되다 (0) | 2022.01.17 |