kotlin 공식 학습 튜 토리 얼 의 기초 문법 상세 설명

9796 단어 kotlin튜 토리 얼
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 홈 페이지 에서 코드 를 실행 하고 본 고 를 결합 하여 스스로 이해 할 수 있 습 니 다.
 읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기