美文网首页
kotlin从入门到看开 ₁

kotlin从入门到看开 ₁

作者: 東方月初 | 来源:发表于2017-06-14 09:27 被阅读71次

layout: post
title: "kotlin-基础知识1"
subtitle: "青春就是这样 好得像是无论怎样度过都会被浪费 那么 不如浪费在你身上"


Kotlin作为JetBrains开发的一门新语言,所以我们还是从语言上来学习它,用的IDE是JetBrains开发的IDEA.

数据类型

在kotlin中不再区分基本数据类型和装箱数据类型,在需要的时候编译器会自动帮我们选择

  • Boolean
  • Number
    • 整形
      • Short
      • Int
      • Long
    • 浮点型
      • Float
      • Double
    • 字节
      • Byte
  • Char
  • String

Boolean

val b1 : Boolean = true
val b2 : Boolean = false

Number

Number主要包括整形和浮点型

整型

  • Short 16位宽
  • Int 32位宽
  • Long 64位宽

浮点型

  • Double 64位宽
  • Float 32位宽

字节

  • Byte 8位宽
val anInt: Int = 8
val anotherInt: Int = 0xFF
val moreInt: Int = 0b00000011
//MAX_VALUE MIN_VALUE均是数字的属性可直接取到
//MAX_VALUE = 2的31次方减一(因为有一位是符号位)
val maxInt: Int = Int.MAX_VALUE = Math.pow(2.0,31.0)-1
val minInt: Int = Int.MIN_VALUE = -Math.pow(2.0,31.0)-1

val aLong: Long = 12368172397127391
val another: Long = 123
val maxLong: Long = Long.MAX_VALUE
val minLong: Long = Long.MIN_VALUE

//2.0默认是Double类型 若想将2.0赋值给一个Float需要在其后面加F
val aFloat: Float = 2.0F
val anotherFloat: Float = 1E3f//1*10^3
val maxFloat: Float = Float.MAX_VALUE
val minFloat: Float = -Float.MAX_VALUE

val aDouble: Double = 3.0
val anotherDouble: Double = 3.1415926
val maxDouble: Double= Double.MAX_VALUE
val minDouble: Double= -Double.MAX_VALUE

val aShort: Short = 127
val maxShort: Short = Short.MAX_VALUE
val minShort: Short = Short.MIN_VALUE

val maxByte: Byte = Byte.MAX_VALUE
val minByte: Byte = Byte.MIN_VALUE

fun main(args: Array<String>) {
    println("16进制:"+anotherInt)
    println("2进制:"+moreInt)

    println("Int最大值:"+maxInt)
    //Int最大值取值范围
    println(Math.pow(2.0, 31.0) - 1)
    println("Int最小值:"+minInt)
    //Int最小值取值范围
    println( - Math.pow(2.0, 31.0))
    println()

    println("Long最大值:"+maxLong)
    println(Math.pow(2.0, 63.0) - 1)
    println("Long最小值:"+minLong)
    println(- Math.pow(2.0, 63.0))
    println()

    println("Float:"+aFloat)
    println("1*10^3:"+anotherFloat)
    println("Float最大值:"+maxFloat)
    println("Float最小值:"+minFloat)
    println()

    println("Double最大值:"+maxDouble)
    println("Double最小值:"+minDouble)
    println()

    println("Short最大值:"+maxShort)
    println("Short最大值:"+minShort)
    println()

    println("Byte最大值:"+maxByte)
    println("Byte最大值:"+minByte)
}

打印结果

16进制:255
2进制:3
Int最大值:2147483647
2.147483647E9
Int最小值:-2147483648
-2.147483648E9

Long最大值:9223372036854775807
9.223372036854776E18
Long最小值:-9223372036854775808
-9.223372036854776E18

Float:2.0
1*10^3:1000.0
Float最大值:3.4028235E38
Float最小值:-3.4028235E38

Double最大值:1.7976931348623157E308
Double最小值:-1.7976931348623157E308

Short最大值:32767
Short最大值:-32768

Byte最大值:127
Byte最大值:-128

Char

字符

  • Char 16位宽
  • Char占两个字节 16位宽
  • Char用单引号'' 引起来,例如:'a','0','\n'
val aChar: Char = '0'
val bChar: Char = '中'
val cChar: Char = '\u000f'

fun main(args: Array<String>) {
    println(aChar)
    println(bChar)
    println(cChar)
}

打印结果

0
中
  //这里是一个换行符

补充转义字符

 \t  制表符
 \b  光标后退一个字符
 \n  回车
 \r  光标回到行首
 \'  单引号
 \"  双引号
 \\  反斜杠
 \$  美元符号,kotlin支持美元 符号开头的字符串模板

String

字符串的比较

  • a == b 表示比较内容,类似java的equals
  • a === b 表示比较对象是否相同

字符串模板

  • $
val string: String = "HelloWorld"
val fromChars: String = String(charArrayOf('H', 'e','l','l','o','W','o','r','l','d'))
//charArrayOf :Char数组构建
fun main(args: Array<String>) {
    println(string == fromChars)
    println(string === fromChars)
    println("输出:" + string)

    val arg1: Int = 0
    val arg2: Int = 1
    println("" + arg1 + " + " + arg2 + " = " + (arg1 + arg2))
    //字符串模板
    println("$arg1 + $arg2 = ${arg1 + arg2}")

    //Hello "Trump"
    val sayHello : String = "Hello \"Trump\""
    println(sayHello)

    val salary: Int = 1000
    //$salary:是取到salary的值
    println("$salary")
    //原始字符串 原样输出字符串 转义字符也没有用(但是$还是可以用的)
    val rawString: String = """
/*****************************/
        嘴不点而含丹
        眉不画而横翠
        \t
        \n
        \$salary
/*****************************/
    """
    println(rawString)
    println(rawString.length)
}

打印结果

true
false
输出:HelloWorld
0 + 1 = 1
0 + 1 = 1
Hello "Trump"
1000

/*****************************/
        嘴不点而含丹
        眉不画而横翠
        \t
        \n
        \1000
/*****************************/
    
135

基本数据类型转换

在kotlin中基本数据类型不可隐士转换

val anint : Int = 5
val along : Long = anint.toLong()

相关文章

网友评论

      本文标题:kotlin从入门到看开 ₁

      本文链接:https://www.haomeiwen.com/subject/lphsqxtx.html