kotlin 공식 학습 튜 토리 얼 의 기초 문법 상세 설명
Google 은 오늘 I/O 대 회 를 열 었 습 니 다.대 회 는 주로 Android O(Android 8.0)시스템,Google Assistant 음성 도 우미,Google 스마트 스피커,인공지능,머 신 러 닝,가상 현실 등 을 보 여 줍 니 다.안 드 로 이 드 개발 자로 서 제 가 관심 을 가 지 는 것 은 당연히 안 드 로 이 드 O(Android 8.0)시스템 입 니 다.그러면 안 드 로 이 드 O 시스템 에 관 한 중요 한 소식 은 Kotlin 프로 그래 밍 언어 를 전면적으로 지원 하여 Kotlin 을 안 드 로 이 드 개발 의 공식 언어 로 만 들 었 습 니 다.안 드 로 이 드 개발 중의 Swift 라 고 불 리 는 것 이 어떤 장점 을 가지 고 안 드 로 이 드 개발 자 에 게 무엇 을 가 져 다 줄 것 입 니까?지 켜 볼 시간 이 필요 해.하지만 개발 자로 서 저 희 는 Kotlin 이 다음 안 드 로 이 드 가 개발 한 공식 언어 라 는 것 을 명확 하 게 알 수 있 기 때문에 오늘 은 kotlin 공식 문 서 를 번역 해 드 리 겠 습 니 다.
기초 문법
정의 패키지 이름
패키지 이름 은 원본 파일 의 맨 위 에 정의 해 야 합 니 다:
package my.demo
import java.util.*
// ...
정의 함수두 개의 Int 형 매개 변수 와 Int 반환 형식의 함수 가 있 습 니 다.
fun sum(a: Int, b: Int): Int {
return a + b
}
fun main(args: Array<String>) {
print("sum of 3 and 5 is ")
println(sum(3, 5))
}
구체 적 인 표현 식 을 가지 고 있 으 며,반환 형식 을 추측 할 수 있 는 함수 입 니 다.
fun sum(a: Int, b: Int) = a + b
fun main(args: Array<String>) {
println("sum of 19 and 23 is ${sum(19, 23)}")
}
의도 치 않 은 함수 되 돌리 기
fun printSum(a: Int, b: Int): Unit {
println("sum of $a and $b is ${a + b}")
}
fun main(args: Array<String>) {
printSum(-1, 8)
}
유닛 반환 형식의 함수 반환 형식 은 생략 할 수 있 습 니 다.
fun printSum(a: Int, b: Int) {
println("sum of $a and $b is ${a + b}")
}
fun main(args: Array<String>) {
printSum(-1, 8)
}
부분 변수 정의부분 변수
fun main(args: Array<String>) {
val a: Int = 1 //
val b = 2 // Int
val c: Int //
c = 3 //
println("a = $a, b = $b, c = $c")
}
가 변 적 변수
fun main(args: Array<String>) {
var x = 5 // Int
x += 1
println("x = $x")
}
주석
Java JavaScript ,Kotlin 。
//
/*
*/
자바 와 달리 Kotlin 블록 주석 은 끼 워 넣 을 수 있 습 니 다.문자열 템 플 릿 사용 하기
fun main(args: Array<String>) {
var a = 1
// :
val s1 = "a is $a"
a = 2
// :
val s2 = "${s1.replace("is", "was")}, but now is $a"
println(s2)
}
사용 조건 식
fun maxOf(a: Int, b: Int): Int {
if (a > b) {
return a
} else {
return b
}
}
fun main(args: Array<String>) {
println("max of 0 and 42 is ${maxOf(0, 42)}")
}
if 를 표현 식 으로 하 다
fun maxOf(a: Int, b: Int) = if (a > b) a else b
fun main(args: Array<String>) {
println("max of 0 and 42 is ${maxOf(0, 42)}")
}
빈 변수 및 빈 값 검사 사용 하기빈 값 이 나타 날 수 있 을 때 인용 은 빈 값 으로 명확 하 게 표시 해 야 합 니 다.
NULL STR
fun parseInt(str: String): Int? {
// ...
}
함 수 를 사용 하여 빈 값 을 되 돌려 줍 니 다.
fun parseInt(str: String): Int? {
return str.toIntOrNull()
}
fun printProduct(arg1: String, arg2: String) {
val x = parseInt(arg1)
val y = parseInt(arg2)
// " X×Y " 。
if (x != null && y != null) {
// ,X Y 。
println(x * y)
}
else {
println("either '$arg1' or '$arg2' is not a number")
}
}
fun main(args: Array<String>) {
printProduct("6", "7")
printProduct("a", "7")
printProduct("a", "b")
}
아니면 이 함수.
fun parseInt(str: String): Int? {
return str.toIntOrNull()
}
fun printProduct(arg1: String, arg2: String) {
val x = parseInt(arg1)
val y = parseInt(arg2)
// ...
if (x == null) {
println("Wrong number format in arg1: '${arg1}'")
return
}
if (y == null) {
println("Wrong number format in arg2: '${arg2}'")
return
}
// ,X Y 。
println(x * y)
}
fun main(args: Array<String>) {
printProduct("6", "7")
printProduct("a", "7")
printProduct("99", "b")
}
형식 검사 와 자동 변환 사용 하기is 연산 자 는 표현 식 이 특정한 유형의 인 스 턴 스 인지 확인 합 니 다.가 변 적 이지 않 은 부분 적 인 변수 나 속성 에 대해 특정한 유형 검 사 를 하면 명확 한 유형 전환 이 필요 하지 않 습 니 다.
fun getStringLength(obj: Any): Int? {
if (obj is String) {
// obj String
return obj.length
}
// obj Any
return null
}
fun main(args: Array<String>) {
fun printLength(obj: Any) {
println("'$obj' string length is ${getStringLength(obj) ?: "... err, not a string"} ")
}
printLength("Incomprehensibilities")
printLength(1000)
printLength(listOf(Any()))
}
아니면 이 함수.
fun getStringLength(obj: Any): Int? {
if (obj !is String) return null
// obj String
return obj.length
}
fun main(args: Array<String>) {
fun printLength(obj: Any) {
println("'$obj' string length is ${getStringLength(obj) ?: "... err, not a string"} ")
}
printLength("Incomprehensibilities")
printLength(1000)
printLength(listOf(Any()))
}
아니면 이 함수?
fun getStringLength(obj: Any): Int? {
// // obj && String
if (obj is String && obj.length > 0) {
return obj.length
}
return null
}
fun main(args: Array<String>) {
fun printLength(obj: Any) {
println("'$obj' string length is ${getStringLength(obj) ?: "... err, is empty or not a string at all"} ")
}
printLength("Incomprehensibilities")
printLength("")
printLength(1000)
}
순환 사용
fun main(args: Array<String>) {
val items = listOf("apple", "banana", "kiwi")
for (item in items) {
println(item)
}
}
이렇게 쓰 거나.
fun main(args: Array<String>) {
val items = listOf("apple", "banana", "kiwi")
for (index in items.indices) {
println("item at $index is ${items[index]}")
}
}
while 순환 사용
fun main(args: Array<String>) {
val items = listOf("apple", "banana", "kiwi")
var index = 0
while (index < items.size) {
println("item at $index is ${items[index]}")
index++
}
}
when 표현 식 사용 하기
fun describe(obj: Any): String =
when (obj) {
1 -> "One"
"Hello" -> "Greeting"
is Long -> "Long"
!is String -> "Not a string"
else -> "Unknown"
}
fun main(args: Array<String>) {
println(describe(1))
println(describe("Hello"))
println(describe(1000L))
println(describe(2))
println(describe("other"))
}
ranges 사용 하기in 연산 자 검사 수치 가 어느 범위 내 에 있 는 지 확인 합 니 다:
fun main(args: Array<String>) {
val x = 10
val y = 9
if (x in 1..y+1) {
println("fits in range")
}
}
수치 가 범 위 를 초과 하 는 지 확인 합 니 다.
fun main(args: Array<String>) {
val list = listOf("a", "b", "c")
if (-1 !in 0..list.lastIndex) {
println("-1 is out of range")
}
if (list.size !in list.indices) {
println("list size is out of valid list indices range too")
}
}
범위 내 범위 교체:
for (x in 1..5) {
print(x)
}
또는 스텝 사용:
for (x in 1..10 step 2) {
print(x)
}
for (x in 9 downTo 0 step 3) {
print(x)
}
사용 집합하나의 집합 을 교체 합 니 다:
for (item in items) {
println(item)
}
in 연산 자 를 사용 하여 집합 에 어떤 대상 이 포함 되 어 있 는 지 확인 합 니 다.
when {
"orange" in items -> println("juicy")
"apple" in items -> println("apple is fine too")
}
lambda 표현 식 선별 및 맵 집합 사용 하기
fruits
.filter { it.startsWith("a") }
.sortedBy { it }
.map { it.toUpperCase() }
.forEach { println(it) }
이해 하기 어 려 운 파트너 는 kotlin 홈 페이지 에서 코드 를 실행 하고 본 고 를 결합 하여 스스로 이해 할 수 있 습 니 다.읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 실험, 에피소드 1a String 의 중심에 있는 문자를 반환하는 메서드를 작성하려는 경우 Java에서 가장 좋은 옵션은 유틸리티 클래스를 정의하는 것입니다. Kotlin을 사용하면 을 통해 기존 클래스에 새 메서드를 추가할 수 있습...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.