Kotlin一: 初识,基础类型注意事项归纳

你瞅啥?

Google官方推荐使用Kotlin作为Android的开发语音,证明Kotlin非常适合开发Android应用,使用Kotlin开发Android应用可充分利用Kotlin的简洁性和便捷性。
Kotlin完全兼容JDK1.6,因此保证了基于Kotlin开发的Android应用完全可以在较老的Android设备上运行。
Kotlin可以自用调用Java的各种类库,因此使用Kotlin调用Android应用程序框架层来开发应用程序甚至无需额外学习,开发者可以无缝地过渡为使用Kotlin开发。
对于性能方面来说,Kotlin编译的字节码和Java原生字节码极为相似,随着Kotlin对内联函数的支持,使用Lambda表达式的代码通常比用Java写的代码运行更快!
正如上所述,Google官方推荐使用Kotlin作为Android开发语言。

Kotlin的显著优势如下:

  • 简洁性:这是我们选择使用的Kotlin的最大动力。Kotlin具有大量现代编程语言的简洁性和便捷性,因此Kotlin被誉为Android平台的Swift。
  • 兼容性:Kotlin完全兼容Java,因此Kotlin即是一门新的语言,也不是一门“全新”的语言,Kotlin可以自由使用Java领域的无数框架和库。因此,开发者即可保持熟悉的技术栈,又可获得现代编程语言的优势。
  • 迁移性:Kotlin支持大型项目从Java向Kotlin逐步迁移-----项目主体部分继续使用Java,新开发的功能可使用Kotlin编写,也可逐步使用Kotlin代替部分老旧的Java代码。

注意事项:

  • 声明变量:var|val 变量名 [:类型] [=初始值]
    1. 赋值类型与变量类型要相符
    2. val声明的变量是不可变变量,不能重新赋值
var b : Int
var name="CCTV"
b = 20
name = "BTV"
name = 12  // 此处是错误的,错误类型的赋值
var age : Int = 30
age = 18
//特别注意以下val声明的变量,不能重新赋值
val book ="疯狂Kotlin讲义"
book ="a" //使用val声明的变量是不可变变量,不能重新赋值
  • 使用val声明的不可变变量其实相当于我们熟知的常量,Kotlin的常量分为两种:
    1. 局部范围的常量:这种常量允许在声明时不指定初始值,在第一次使用之前赋值即可。
    2. 类的常量属性:这种常量属性既可以在声明时指定初始值,也可以在类或结构体的构造器中指定初始值
  • Kotlin是null安全的语言,因此Byte、Short、Int、Long变量都不接受null值,如果存储null值,则使用“?” 如下示例:
var notNull : Int =null // 不支持null值,错误代码
var nullable : Int? =null // Int?相当于支持null值的Int型,正确代码
  • 整数类型添加“?”后缀和不加后缀有什么区别?
    1.不加后缀“?”将会映射成Java的int基本类型,但Int?类型则会自动映射成Java的Integer类型
    2.如果将Int?的值设置在“-128~127”之间的整数,那么两值也是相等的,大于这个区间,则不相等
var int1 : Int = 100
var int2 : Int = 100
printlin(int1 === int2) // 基本类型比较,输出true
var int3 : Int? = 200
var int4 : Int? = 200
printlin(int3 === int4) // 引用类型比较,输出false
var int5 : Int? = 100
var int6 : Int? = 100
printlin(int5 === int6) // Int?值设置在“-128~127”之间的整数,引用类型比较,输出true
  • 数据类型间的转换
    1. 转换运算的结果会自动提升到参与运算过程中的类型最高等级。低>高:Byte
    2. 如果表达式中包含字符串,+号是连接运算符,如果+号前后是Char型值字符和数字,会得到‘a’后面的第几位数字的字符
// -------基本类型转换
var b : Byte = 40
var c : Short = 97
var i : Int = 23
var d : Double = .315
// Double是最高类型等级,则result也将会是Double类型
val result = b + c + i * d;
println (result )
// -------字符串类型转换
// 输出Hello!a7
println ("Hello!"+'a'+7 )
// 输出hHello!  此处对Char型做加法运算,得到'a'后面的第7个字符'h'。
println ('a'+7+"Hello!" )
  • Kotlin的Boolean值只能用true 和false,不能用0和非0代表。
  • Kotlin的安全调用,非空判断可省略,只需?号可达目的,也可与let全局函数结合使用,可达到判断是否为空的目的
var b : String? ="dsfs"
println(b?.length) //  输出4
b=null
println(b?.length) //  输出null
// 与let函数结合使用,当b不为null时才调用let函数,相当于判断是否为空
b?.let{
println(it)
}
  • Kotlin的Elvis运算,相当于if else 简化写法,"?:"运算符,符号左边相当于if,符号右边相当于else
var b : String? = null
var len = b?.length ?: -1
println(len) // 输出-1
  • Kotlin的字符串方法
    1. capitalize() 首字母大写
    2. decapitalize() 首字母小写
    3. commonPrefixWith() 返回两个字符串相同的前缀
    4. commonSuffixWith() 返回两个字符串相同的后缀
    5. contains() 支持正则表达式匹配
var str = "sdfasdf897.org"
println(str.commonPrefixWith("asfadsfas.org")) // 输出asfa
println(str.commonSuffixWith("asfadsfas.org")) // 输出org
println(str.contains("Regex("\\d{3}"))) // 输出897
  • 传送门:
    Kotlin二:运算符和表达式 归纳总结

你可能感兴趣的:(Kotlin一: 初识,基础类型注意事项归纳)