Kotlin 학습 : Kotlin 기본 데이터 유형

Kotlin 기본 데이터 유형

Kotlin의 기본 숫자 유형에는 Byte, Short, Int, Long, Float, Double 등이 있습니다. Java와 달리 문자는 숫자 유형이 아니며 독립적 인 데이터 유형입니다.

유형 비트 폭
더블 64
흙손 32
64
Int 32
짧은 16
바이트 8

리터럴 상수

다음은 모든 유형의 리터럴 상수입니다.

  • 10 진수 : 123
  • 긴 정수는 대문자 L로 끝납니다 : 123L
  • 16 진수는 0x로 시작 : 0x0F
  • 이진수는 0b로 시작합니다 : 0b00001011
  • 참고 : 8 진수는

Kotlin은 기존 표기법의 부동 소수점 값도 지원합니다.

  • 기본 쓰기 두 배 :  123.5123.5e10
  • 플로트는 f 또는 F 접미사를 사용합니다.123.5f

밑줄을 사용하여 숫자 상수를 더 쉽게 읽을 수 있습니다.

발 oneMillion = 1_000_000

두 숫자 비교

Kotlin에는 기본 데이터 유형이 없으며 캡슐화 된 숫자 유형 만 있습니다. 변수를 정의 할 때마다 Kotlin은 실제로 개체를 캡슐화하여 null 포인터가 없도록합니다. 숫자 유형도 동일하므로 두 숫자를 비교할 때 데이터 크기를 비교하는 것과 두 개체가 동일한 지 비교하는 것 사이에 차이가 있습니다.

Kotlin에서 등호 3 개 ===는 객체 주소 비교를 의미하고, == 2 개는 두 값의 크기 비교를 의미합니다.

유형 변환

다른 표현으로 인해 더 작은 유형은 더 큰 유형의 하위 유형이 아니며 더 작은 유형은 암시 적으로 더 큰 유형으로 변환 될 수 없습니다. 이는 명시 적 변환 없이는 Int 변수에 Byte 값을 할당 할 수 없음을 의미합니다.

각 데이터 유형에는 다른 유형으로 변환 할 수있는 다음 메소드가 있습니다.

toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char

경우에 따라 컨텍스트에 따라 올바른 데이터 유형을 유추 할 수 있고 그에 따라 수학 연산자가 오버로드되는 경우 자동 유형 변환도 사용할 수 있습니다. ㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ

val l = 1L + 3 // Long + Int => Long

비트 연산자

Int 및 Long 유형의 경우 각각 사용할 수있는 일련의 비트 연산자도 있습니다.

shl(bits) – 左移位 (Java’s <<)
shr(bits) – 右移位 (Java’s >>)
ushr(bits) – 无符号右移位 (Java’s >>>)
and(bits) – 与
or(bits) – 或
xor(bits) – 异或
inv() – 反向

캐릭터

Java와 달리 Kotlin의 Char는 숫자로 직접 조작 할 수 없습니다. Char는 작은 따옴표로 묶어야합니다. 일반 문자 '0', 'a'와 같은

문자 리터럴은 작은 따옴표 '1'로 묶습니다. 특수 문자는 백 슬래시로 이스케이프 할 수 있습니다. 다음 이스케이프 시퀀스 (\ t, \ b, \ n, \ r, \ ', \ ", \\ 및 \ $)를 지원합니다. 다른 문자를 인코딩하려면 유니 코드 이스케이프 시퀀스 구문을 사용하십시오.'\ uFF00 '

문자를 Int 숫자로 명시 적으로 변환 할 수 있습니다.

fun decimalDigitValue(c: Char): Int {
    if (c !in '0'..'9')
        throw IllegalArgumentException("Out of range")
    return c.toInt() - '0'.toInt() // 显式转换为数字
}

nullable 따옴표가 필요한 경우 숫자 및 문자와 같은 상자가 표시됩니다. 권투 작업은 신원을 보존하지 않습니다

부울

부울은 부울 유형으로 표시되며 true와 false의 두 가지 값이 있습니다.

Nullable 참조 Boolean은 필요한 경우 boxing됩니다.

기본 제공 부울 연산은 다음과 같습니다.

|| – 短路逻辑或
&& – 短路逻辑与
! - 逻辑非

정렬

배열은 Array 클래스로 구현되며, size 속성과 get, set 메소드도 있습니다. get과 set 메소드는 []로 오버로드되기 때문에 쉽게 배열의 해당 위치 값을 가져 오거나 설정할 수 있습니다. 아래 첨자.

배열을 만드는 방법에는 두 가지가 있습니다. 하나는 arrayOf (함수)를 사용하는 것이고 다른 하나는 팩토리 함수를 사용하는 것입니다. 아래와 같이 두 가지 방법으로 두 개의 배열을 만들었습니다.

fun main(args: Array<String>) {
    //[1,2,3]
    val a = arrayOf(1, 2, 3)
    //[0,2,4]
    val b = Array(3, { i -> (i * 2) })

    //读取数组内容
    println(a[0])    // 输出结果:1
    println(b[1])    // 输出结果:2
}

위에서 언급했듯이 [] 연산자는 멤버 함수 get () 및 set () 호출을 나타냅니다.

참고 : 자바와 달리 Kotlin의 배열은 변하지 않습니다.

Array 클래스 외에도 다양한 유형의 배열을 표현하는 데 사용되는 ByteArray, ShortArray, IntArray가있어 boxing 작업이 필요하지 않으므로보다 효율적이고 사용법은 Array와 동일합니다.

Java와 마찬가지로 String은 변경할 수 없습니다. 대괄호 [] 구문은 문자열에서 문자를 가져 오는 데 매우 편리 할 수 ​​있으며 for 루프를 통해 순회 할 수도 있습니다.

for (c in str) {
    println(c)
}

Kotlin은 3 개의 따옴표 "" "가있는 문자열과 다음과 같은 여러 줄 문자열을 지원합니다.

fun main(args: Array<String>) {
    val text = """
    多行字符串
    多行字符串
    """
    println(text)   // 输出有一些前置空格
}

문자열은 trimMargin () 메서드를 사용하여 과도한 공백을 제거 할 수 있습니다.

기본 |이 경계 접두어로 사용되지만 다른 문자를 선택하고 trimMargin ( ">")과 같은 매개 변수로 전달할 수 있습니다.

문자열 템플릿

문자열에는 템플릿 표현식, 즉 평가 될 코드의 일부가 포함될 수 있으며 결과는 문자열에 병합됩니다. 템플릿 표현식은 달러 기호 ($)로 시작하며 간단한 이름으로 구성됩니다.

또는 중괄호로 묶인 표현식 :

fun main(args: Array<String>) {
    val s = "runoob"
    val str = "$s.length is ${s.length}" // 求值结果为 "runoob.length is 6"
    println(str)
}

네이티브 문자열과 이스케이프 된 문자열은 모두 내부적으로 템플릿을 지원합니다. 기본 문자열에서 리터럴 $ 문자를 표시해야하는 경우 (백 슬래시 이스케이프를 지원하지 않음) 다음 구문을 사용할 수 있습니다.

fun main(args: Array<String>) {
    val price = """
    ${'$'}9.99
    """
    println(price)  // 求值结果为 $9.99
}

 

추천

출처blog.csdn.net/PrisonJoker/article/details/113470931