你瞅啥?
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被誉为Android平台的Swift。
-
兼容性:Kotlin完全兼容Java,因此Kotlin即是一门新的语言,也不是一门“全新”的语言,Kotlin可以自由使用Java领域的无数框架和库。因此,开发者即可保持熟悉的技术栈,又可获得现代编程语言的优势。
-
迁移性:Kotlin支持大型项目从Java向Kotlin逐步迁移-----项目主体部分继续使用Java,新开发的功能可使用Kotlin编写,也可逐步使用Kotlin代替部分老旧的Java代码。
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声明的变量是不可变变量,不能重新赋值
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<Short<Int<Long<Float<Double
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!" )
var b : String? ="dsfs"
println(b?.length) // 输出4
b=null
println(b?.length) // 输出null
// 与let函数结合使用,当b不为null时才调用let函数,相当于判断是否为空
b?.let{
println(it)
}
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
网友评论