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          。
//      
/*   
      */
문자열 템 플 릿 사용 하기
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)}")
}
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]}")
  }
}
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++
  }
}
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"))
}
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)
}
when {
  "orange" in items -> println("juicy")
  "apple" in items -> println("apple is fine too")
}
fruits
.filter { it.startsWith("a") }
.sortedBy { it }
.map { it.toUpperCase() }
.forEach { println(it) }
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 실험, 에피소드 1a String 의 중심에 있는 문자를 반환하는 메서드를 작성하려는 경우 Java에서 가장 좋은 옵션은 유틸리티 클래스를 정의하는 것입니다. Kotlin을 사용하면 을 통해 기존 클래스에 새 메서드를 추가할 수 있습...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.