学习视频地址:https://coding.imooc.com/class/398.html
1.实现Java调用Kotlin文件
1.修改build.gradle的Project文件
加入代码:
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50'
2.修改build.gradle的Module文件
id 'kotlin-android'
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.3.50'
这样就可以在Java项目,使用kotlin了。
2.把java文件转换为kotlin文件
1.点击code下面的connect Java File to kotlin File
2.转换成功
3.kotlin 的基本类型
1.基本类型
2.声明变量
val与var的区别:val只读不能修改,var可读也可修改 。val与Java中的final有点相像
3.kotlin与Java的区别:
1.不用以逗号结尾 ; 2.类型在后,变量名在前; 3. :类型可省 。 4.修饰Long类型时,最后面只能加大写L ,不能用小写l。
val c=2000L √
val c=2000l ×
5.Kotlin的数值类型转换 不能直接进行转换,需要加上to类型()。 例:
val e:Int=10
val f:Long=e.toLong()
6.kotlin无符号类型,与c语言中的unsigned有异曲同工。 例:
fun main()
{
val g:UInt= 2u
println("$g")
}
7.kotlin的输出
val name="李华"
println("name is :$name")
println("length is :${name.length}")
System.out.printf("length is :%d",name.length)
8.kotlin中的地址和数值的比较 用=== 比较数值相等 ,与Java中的 == 效果相同 用==比较地址相等 ,与Java中的equals效果相同
9.kotlin输出多行数值,不像要Java一样用\n进行换行,以及用+来拼接。kotlin更加方便。
var test="""
123
123
""".trimIndent()
println("输出:\n$test")
4.数组
1.数组的创建
val c0= intArrayOf(1,2,3,4,5)
val c1=IntArray(5){2*(it+1)}
println(c0.contentToString())
println(c1.contentToString())
2.数组的长度
val a=IntArray(5);
println(a.size)
3.数组的读写
val d= arrayOf("Hello","World")
d[1]="Kotlin"
println("${d[0]},${d[1]}")
4.数组的遍历
val e= floatArrayOf(1f,3f,5f,7f)
for(value in e)
{
println(value)
}
e.forEach { element->
println(element)
}
val array= intArrayOf(1,3,5,7)
for (i in array.indices)
{
println(array[i])
}
5.区间
1.区间的创建
val intRange=1..10
val charRange='a' until 'd'
val longRange=10L downTo 1L
val intRangeStep=1..10 step 2
val floatRange=1f..10f
val doubleRange=1.0..10.0
println(intRange.joinToString())
println(charRange.joinToString())
println(longRange.joinToString())
println(intRangeStep.joinToString())
println(floatRange.toString())
println(doubleRange.toString())
2.简单遍历
与数组方法相同
6.集合框架
1.集合框架的介绍
集合框架复用Java API的所有实现 不可变的List不能添加和删除元素 。 例:
val intList: List<Int> = listOf(1,2,3)
val intList2: MutableList<Int> = mutableListOf(1,2,3)
val map:Map<String,Any> = mutableMapOf("name" to "luo","age" to 20)
val stringList=ArrayList<String>()
2.集合框架的修改
for(i in 0..10){
stringList+="num:$i"
}
println(stringList.toString())
for (i in 0..3)
{
stringList-="num:$i"
}
println(stringList.toString())
3.集合框架的读写
stringList[5]="HelloWorld"
val valueAt5=stringList[5]
println(valueAt5)
val hashmap=HashMap<String,Int>()
hashmap["Hello"]=10
println(hashmap["Hello"])
4.Pair(两个元素)
val pair ="Hello" to "Kotlin"
val pair2=Pair("Hello","Kotlin")
val first=pair.first
val second=pair.second
val (x,y)=pair
5.Triple(三个元素)
val triple=Triple("x",2,3.0)
val first1=triple.first
val second1=triple.second
val third1=triple.third
val (x1,y1,z1)=triple
7.函数
1.函数定义
Unit相当于Java的void,可以省略
2.函数引用
(Foo,String,Long)->Any等价于Foo.(String,Long)->Any等价于(Foo,String,Long,Any)
3.可变参数
multiParameters(1,2,3,4)
fun multiParameters(vararg ints:Int)
{
println(ints.contentToString())
}
4.多返回值
val (x2,y2,y3)= multiReturnValues()
fun multiReturnValues():Triple<Int,Long,Double>
{
return Triple(1,3L,4.0)
}
5.默认函数
defaultParameter(2)
fun defaultParameter(x:Int,y:String="小明",z:Double=20.0)
{
TODO()
}
6.具名函数
与默认函数的区别:defaultParameter(y="李华") ,可以设置要赋值的地方,因为默认函数一般默认第一个函数
|