kotlin学习第一天:kotlin的简单内置类型

学习视频地址: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=2000Lval c=2000l    ×

5.Kotlin的数值类型转换
不能直接进行转换,需要加上to类型()。
例:

//将Int型转化为Long型
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")   //trimIndent方法:用于切割每一行开头相同数量的空格

在这里插入图片描述

4.数组

在这里插入图片描述

1.数组的创建

val c0= intArrayOf(1,2,3,4,5)
val c1=IntArray(5){2*(it+1)}
println(c0.contentToString())  //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)  //indices获取区间[0,4)
{
    println(array[i])
}

在这里插入图片描述

5.区间

1.区间的创建

val intRange=1..10  //闭区间[1,10]
    val charRange='a' until 'd' //前闭后开区间[a,d)
    val longRange=10L downTo 1L //倒序区间
    val intRangeStep=1..10 step 2 //步长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)//Any等价于Java的Object
val stringList=ArrayList<String>()

2.集合框架的修改

//添加数据
for(i in 0..10){
     stringList+="num:$i"  //等价于stringList.add("num:$i")
 }
 println(stringList.toString())

 //删除数据
 for (i in 0..3)
 {
     stringList-="num:$i"  //等价于stringList.remove("num:$i")
 }
 println(stringList.toString())

在这里插入图片描述

3.集合框架的读写

stringList[5]="HelloWorld" //在stringList添加数据
val valueAt5=stringList[5] //在stringList读取数据
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(三个元素)

//创建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)  //设置参数

//vararg设置可变参数,参数个数不定
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)  //其中y,z都有默认值

fun defaultParameter(x:Int,y:String="小明",z:Double=20.0)
{
    TODO()
}

6.具名函数

与默认函数的区别:defaultParameter(y="李华"),可以设置要赋值的地方,因为默认函数一般默认第一个函数

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值