Kotlin入门(一)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/xiangshiweiyu_hd/article/details/90613032

1、输出 hello word

fun main(args:Array<String>){
	print("hello word");
}

fun:声明方法
main:方法名称
参数书写方式:名称 :变量类型

2、声明 与 初始化 变量

var a=10
var b= "韩小呆"

val a= 123

var: 相当于可变参数,此时可以向 a 再次进行赋值,这里不需要 java 里面的各种变量具体声明,因为 Kotlin 会从后面的赋值内容中推导出对象类型;被称之为:智能类型推断。
val :相当于 java 内 的final 修饰,故对基本数据类型进行一次赋值之后,就不可以进行再一次更改。

当然书写者也可以直接指定数据类型:

var a : int=2
val b : String ="韩小呆"

当只进行声明而不进行赋值时应进行如下操作

var a : Int
a=10

因为存在智能类型推断,所有在不赋值的情况下变量需要 声明数据类型则可以让编译器知道数据类型。
Kotlin内的常见数据类型

Btye 、 Short 、Int、Long、Float、Double、String

3、函数声明

编写规则

fun 函数名(参数名:参数类型):返回值类型{
  //函数体
}
返回值类型可以不写

无参无返回值

fun nHave(){

}

无参有返回值

fun oHave():String{
	return "abc";
}

有参无返回值

fun oHave( a:Int,b:String){
	
}

有参有返回值

fun dHave(a:Int):String{
	return "韩小呆"
}

4、字符串模板

fun main() {
println(language("Kotlin"))
}
fun  language(name:String):String{
    var str="今天大雨,我坐在家里学习新的编程语言 $name"
    return str
}

这里用 “ $ ” 符号 将字符串进行了拼接类似于Java的“ + ”;

5、条件控制 if 和 else

fun main() {
println(isTrue(10,12))
}
fun  isTrue(a:Int,b:Int):String{
    if (a>b){
        return "a比较大"
    }else{
        return "b比较大"
    }
}

fun main() {
println(isTrue(10,12))
}
fun  isTrue(a:Int,b:Int):String{
    return if(a>b) "a较大" else "b较大"
}

第二种书写方式虽然 阅读不是十分友好,但是简洁很多,类似于三元表达式

6、字符串比较

fun main() {
    var str1 = "abc"
    var str2 = "abc"
    var str3 = "Abc"

    println(str1 == str2)
    println(str1 == str3)
    println(str1.equals(str2))
    //第二个参数 为 true 时忽略大小写,为 false 或者是默认 则不忽略大小写
    println(str1.equals(str3,true))
}

7、空值处理

当在编译期赋值为 null 时,会造成编译不通过,编译期进行提示。

a: Int?

参数类型后面的 “?”表示 数据可为空。

8、when 表达式

fun main() {
    whatWeather("冰雹")
}

fun whatWeather(weather:String){
    val weather="今天天气怎么样,额,$weather,今天的天气是 $weather ${strLength(weather.length)} 个字可以形容"
    println(weather)
}

fun strLength(len: Int): String {
    val reseult = when (len) {
        1 -> "一"
        2 -> "二"
        3 -> "三"
        4 -> "四"
        else -> "很多字"
    }
    return reseult
}

这里的 when 相当于 Java 内的 switch case
注意 String 的拼接。

9、loop(循环) 和 range(区间)

循环

fun main() {
    var nums1 = 1..100 //[1,100] 表示 1到 100
    for (num in nums1) {
        print("$num ,")
    }
    println("")
    var num2 = 1 until 100//[1,100) 表示1 到 99
    for (num in num2) {
        print("$num ,")
    }

    println("")
    for (num in num2 step 2) {//表示步长为 2 进行取值
        print("$num ,")
    }
    println("")
    println("num2 包含数据个数为 ${num2.count()} 个") // count() 方法表示数据长度
}

10、list 与 map 了解

创建 List

 var names= listOf("小明","小红","小韩","小呆")

循环输出 list 内内容

   var names= listOf("小明","小红","小韩","小呆")
    for (name in names){
        print("名字:$name , ")
    }

循环输出内容 和 内容索引

  var names= listOf("小明","小红","小韩","小呆")

 for ((i,e) in names.withIndex()){
        print("$i $e ")
    }

创建 Map

  var map: HashMap<Int, String> = HashMap()
    map[1] = "小明"
    map[2] = "小红"
    map[3] = "小呆"
    map[4] = "小韩"

Map 输出

    var map: HashMap<Int, String> = HashMap()
    map[1] = "小明"
    map[2] = "小红"
    map[3] = "小呆"
    map[4] = "小韩"

    println(map[1])

    for (item in map) {
        print("$item ,")
    }
}

11、函数和函数式表达式

以下代码表达的效果相同

fun main() {
    var i = { a: Int, b: Int -> a + b }
    var a = i(3, 4)
    var j: (Int, Int) -> Int = { x, y -> x + y }
    var b=j(4,5)

    println(result0(1, 2))
    println(result1(2, 3))
    println(a)
    println(b)
}
fun result0(a: Int, b: Int): Int {
    return a + b
}
fun result1(a: Int, b: Int): Int = a + b

12、默认参数 和 具名参数

可以在形参内指明具体的参数数值,这样咋调用该方法或者是函数时 当不输入已经指明的 参数时 则需要按照第二种方式去指定 没有默认值的参数的数值,当输入全部参数时则可以按照正常调用逻辑一样进行调用 即第一种输出方式

fun main() {
    println(result0(2,3))
    println(result0(b=3))
}

fun result0(a: Int = 1, b: Int): Int {
    return a + b
}

13、人机交互进行运算

fun main() {
    println("请输入第一个数值")
    var a = readLine()
    println("请输入第二个数值")
    var b = readLine()

    var num1 = a!!.toInt()
    var num2 = b!!.toInt()
    println("$num1 + $num2 =${num1 + num2}")
}

这里的双 “!” 表示该数据不能为空,当然了 ,可以输入空,之后 程序挂掉报错如下
数值为空报错

14、Kotlin 实现递归

fun main() {
    println(result(5))
}

fun result(a:Int):Int{
    if (a==1){
        return 1
    }else{
        return a*result(a-1)
    }
}

BigInteger : 表示 Kotlin 内的一个足够大的数据

猜你喜欢

转载自blog.csdn.net/xiangshiweiyu_hd/article/details/90613032