kotlin从入门到看开 ₁
2017-06-14 本文已影响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()