ㅇㄹㅇㄹ
타입 추론이 일어나서 변수 선언이 간단.
변수 2개
자바는 선언할 때 null 타입 선언이 가능했음.
String str = null;
근데 이러면 출력하려고 할 때 안됐다.
데이터가 안 찍히거나 프로그램이 강제 종료
그래서 코틀린은 아예 null을 허용 안함.
아예 null 선언을 못 하게 한 것.
(null은 없다)
자바보다 안전하다.
null을 완벽히 선언할 수 없나? 그건 아님.
대신
?
세미콜론도 없다.
val a:Int = 7 // 타입을 뒤에 써줌
val b = 100 // 추론 타입
val c:Int // int c; <- 메모리에 Int 타입 c를 그냥 넣은 거
println(a)
println(b)
println(c) // c는 출력 못함. 자바에서도 못함.
val은 상수 선언. 변경 못함.
val a:Int = 7 // 타입을 뒤에 써줌
val b = 100 // 추론 타입
val c:Int // int c; <- 메모리에 Int 타입 c를 그냥 넣은 거
c = 100
b = 10 // 안됨
println(a)
println(b)
println(c) // c는 출력 못함. 자바에서도 못함.
var d:Int = 3
C++ 자료형...
u(unsigned?) u붙은 애들
0부터. 음수 부분은 없다.
(나머지는 자바랑 같음)
byte, ubyte
이런거 있다
자바에서 long과 float 타입의 표식자가 있었다. (숫자F, 숫자L)
""" """
<- 자바스크립트처럼 이런거 있다.
var str:String = "가나다라마바사"
str = """
자동 줄바꿈
줄바꿈
이래.
"""
fun main() {
//자료형
//배열
var arr = arrayOf("서울", "부산", "인천", "경기")
println(arr.toList())
println(arr.size)
println(arr[0])
println(arr[1])
println(arr[2])
println(arr[3])
println(arr[arr.size - 1])
println("-----------------------------")
// for (반복자 in 집합) { 반복자 }
for (lulu in arr) {
println(lulu)
}
println("-----------------------------")
var arrInt:IntArray = intArrayOf(10, 20, 30)
arrInt.set(0, 100)
println(arrInt.size)
println(arrInt[0])
var temp:Int = arrInt.get(arrInt.size - 1)
println(temp)
println("이제부터 for문")
for(temp in arrInt) {
println(temp)
}
// println("이 for문은?") -> 안된다고 한다
// for(var i=0; i < arrInt.size; i++) {
// println(i)
//
// }
println("여기는 forEach")
arrInt.forEach { print(it) }
}
for문
for (반복자 in 0 .. i)
<- 일케 쓰게 된다.
fun print1(i:Int) {
for (i2:Int in 0 .. i)
println("$i2 print1 함수 입니다.")
}
println("$i2 print1 함수 입니다.")
$로 출력 string에 변수 넣기 된다
fun print2(num1:Int, num2:Int) {
println("$num1 + $num2 = ${num1 + num2}")
}
코틀린 삼항연산자 없음
open
키워드를 붙여야 상속이 열림. 클래스와 메서드는 기본적으로 final
fun main() {
// 객체 생성
var human = Human()
human.name = "쟝원영"
human.age = 150
var human2 = Human2("신류진", 29)
}
class Korean : Human { // Human이 open이 아니면 상속할 수 없음
}
class Human2(var name:String, var age:Int) {
}
open class Human {
var name: String = ""
var age: Int = 0
}
이렇게...
fun main() {
// 객체 생성
var human = Human()
human.name = "쟝원영"
human.age = 150
var human2 = Human2(name = "신류진", age = 29)
var korean2 = Korean2(name = "하니", age = 39)
println(korean2.name)
println(korean2.age)
}
class Korean : Human() {
}
class Korean2(name:String, age:Int) : Human2(name, age) {
}
open class Human2(var name:String, var age:Int) {
}
open class Human {
var name: String = ""
var age: Int = 0
}
pdf p89 꼭 읽기 (람다식?인듯) -> 읽어야 내일 할 Svelte에서 편할것
오늘도 역시 일등이십니다 어쩜 이렇게 빠르게 정리를 해주시는지요... 저랑 뇌를 바꾸실 생각이 있으신가요?????❤️🔥