Kotlin入门学习笔记(一)

常见类型及取值范围

在这里插入图片描述

变量、常量、类型推断

常量:只读,用val声明。变量:可读写,用var声明。

fun main(args:Array<String>) {
    var i = 18
    //i = 199999999999999999999999
    //i被智能类型推断为整数类型。故再次给i赋值,会超出范围。
	
	//如何显示声明数据类型
    var j:Long = 12
    j = 99999999999999

    var s:String = "嘻嘻哈哈"
	
	//var a 
	//这一行由于没有为变量a赋值,也没有为其声明类型,故类型推断无法知道其类型。所以会报错!
	var a1:Int
	//这样显示的声明就不会了
	
	val v = 123
	//v = 12345
	//由于v是被val声明的常量,故不可修改
}

kotlin函数

函数是计算机语言执行的单元,或称为方法。

main函数

kotlin程序的入口函数。程序运行时的默认第一个运行的函数。

printlln()函数

打印函数

函数编写规则

fun 函数名(参数名:参数类型):返回值类型{
	函数体
}

kotlin中的boolean

示例代码:

fun main() {
    var n1 = 1
    var n2 = Math.sqrt(5.0)-Math.sqrt(4.0)  //开根号
    var n3 = Math.pow(2.0,100.0)    //2的100次方

    println(n1 > n2)
    println(n2 > n3)
}

字符串模板

语法:${}

//字符串模板

fun diaryGenner(str:String):String{
    var temple = """
        字符串:${str}
        字符串长度:${str.length}
    """.trimIndent()
    return temple;
}

fun main() {
    var str = diaryGenner("嘻嘻")
    println(str)
}

if-else

fun getSmall(a:Int,b:Int):Int{
    if(a>b){
        return a
    }else{
        return b
    }
}

fun getBig(a:Int,b:Int):Int{
    if(a<b) return a else return b
}

fun main() {
    var a = 1
    var b = 2
    println("${a}${b}中大的数是:${getBig(a,b)}")
    println("${a}${b}中小的数是:${getSmall(a,b)}")
}

字符串比较

fun main() {
    var s1 = "HELLO"
    var s2 = "HELLO"
    var s3 = "hello"

    println(s1 == s2)
    println(s1.equals(s2))

    println(s3.equals(s2))  //不忽略大小写比较
    println(s3.equals(s2,true)) //忽略大小写比较
    //返回true,在kotlin中与Java是有区别的
    //在Java中==比较的是内存地址是否相同
    //而kotlin中字符串比较的==,相当于java中的equals
}

空值处理

在这里插入图片描述
如果一定要传递一个null值,可以参照如下写法

//String?表示参数可以为空值
fun strs(str:String?):String{
    return "嘻嘻-"+str
}

fun main() {
    println(strs(null))
}

when表达式

fun grade(score:Int){
    when(score){
        10 -> println("满分")
        9 -> println("不错")
        8 -> println("还不错")
        else -> println("需要加油")
    }
}

fun main() {
    println(grade(7))
}

Loop与Range

.. 表示区间

  1. 声明1到100个数
fun main() {
    var nums = 1 .. 100		//区间[1,100]
    var res = 0
    for(num in nums){
        print("${num} ")
        res += num
    }
    println("\n结果是:${res}")
}

until 关键字

fun main() {
    var nums = 1 until 20   //[1,20)
    for(num in nums){
        print("${num} ")
    }
}
//输出: 1 2 3 ... 18 19 

step步长

fun main() {
    var nums = 1 .. 20
    for(num in nums step 2){
        print("${num} ")
    }
}
//输出:1 3 5 7 9 11 13 15 17 19 

reversed()方法

fun main() {
    var nums = 1 .. 15
    for(num in nums.reversed()){
        print("${num} ")
    }
    print("\n 总数:${nums.count()}")
}
//输出:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 
// 总数:15

List与Map

List集合

fun main() {
    var lists = listOf<String>("Hello","你好","bonjour","Hallo")
    for ((index,str) in lists.withIndex()){
        println("$index $str")
    }
}

Map键值对

import java.util.*

fun main() {
    var map = TreeMap<String,String>();
    map["hi"] = "你好"
    map["1"] = "a"
    map["2"] = "b"

    println(map["hi"])
    println(map.get("1"))

}

函数与函数表达式

//函数与函数表达式
fun main() {
    println(add(1,2))

    //声明一个乘法函数
    var mul:(Int,Int)->Int = {x,y -> x*y}
    println(mul(2,3))

    //声明一个减法函数
    var sub = {x:Int,y:Int -> x-y}
    println(sub(1,2))
}

//当函数方法体只有一行代码时,可以省略大括号与return
fun  add(x:Int,y:Int):Int = x+y

默认参数与具名参数

//默认参数与具名参数
val PI = 3.1415926f

//定义求一个圆的周长方法
//指定一个默认的参数
fun getLong(pi:Float = PI,d:Float):Float{
    return pi*d
}

fun main() {
    println(getLong(3.14f,12f))
    println(getLong(d=12f))     //这样写就是采用具名函数的方式来写
}

字符串与数字的转换

//字符串和数字之间的转换
fun main(args: Array<String>) {
    var a = "13"
    var b = 13

    a = b.toString()
    b.toInt()

//    var c = "a3"
//    c.toInt()
    //以上两行会出现bug,原因是字符串中的字母无法转为数字
}

kotlin键盘输入事件

fun main() {
    println("请输入数字1:")
    var a:Int = readLine()!!.toInt();
    println("请输入数字2:")
    var b:Int = readLine()!!.toInt();

    println("${a}+${b}=${a+b}")
}

Kotlin异常处理

fun main() {
    try {
        println("请输入数字1:")
        var a:Int = readLine()!!.toInt();
        println("请输入数字2:")
        var b:Int = readLine()!!.toInt();
        println("${a}+${b}=${a+b}")
    }catch (e:Exception){
        println("请输入数字!!!")
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Huathy-雨落江南,浮生若梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值