Kotlin基础知识:变量_函数_条件语句.ST

抓住今天,尽可能少的信赖明天。 喝汤能补 (* ^ ▽ ^ *)

前言

  该文章作为学习交流,如有错误欢迎各位大佬指正 (* ^ ▽ ^ *)

  • 自身技能
    (1)已具备计算机的基本知识
  • 本文简介
    主要讲解:变量的语法,函数语法,以及基本的条件语句语法。文中代码采用最基础的逻辑和语法形式,后续讲述kotlin简洁的语法糖。
  • 如何运行Kotlin代码可自行百度

变量

变量就是内容可以改变的量。
开局一代码,其他全靠说。

val b = 2   // 自动推断出 `Int` 类型
val c : Int  // 没有定义初始值,不能省略。 如:val  c  编译器会抛出错误
c = 3       // 明确赋值
  • var关键字 声明变量,里面存放的是可读可写的数据.即可以表示的内容可多次修改
  • val关键字 声明常量,里面存放的是只读的数据. 即只能进行一次初始化,之后无法更改内容。

写法推荐:如果不知道该变量是否会被改变, 建议先定义成val 类型

  • C/java而言,需要使用int,float,double 等类型进行声明才知道变量的类型;kotlin 会通过类型推断自动推断数据类型。val a = 2 因为将数字2赋值给a,那a可能就是Int

  • 自动推断:也有无法做到自动推断,就需要显示声明. 比如: 对变量延迟赋值,就无法自动,如:val c 该代码编译器会抛出错误。

  • 显示声明: val a : Int = 10 再对a进行字符串赋值,则丢出类型不匹配异常.

  • Int 与 java中int的区别: Int是一个类, int是一个基本数据类型,也是关键字。

  Java 语言里面的数据类型包含基本类型和引用类型。在 Java 里面存储数值、字符、布尔值可以使用基本数据类型也可以使用引 用类型。
  Kotlin 则不区分基本类型和引用类型,统一都是引用类型。为了表示数值、字符、 布尔值、数组、集合等,Kotlin 定义了很多类型。可以称这些定义好的这些类型为“内置类型”。可以把数值、字符、布尔值这些相对基础、简单的类型称为“基本内置类 型”。把数组、集合此类相对复杂的类型称为“复杂内置类型”。

Java 与 Kotlin 数据类型对应写法

JavaKotlin
booleanBoolean
byteByte
charChar
shortShort
intInt
floatFloat
longLong
doubleDouble

可变参数

  vararg关键字 可变参数指参数个数不确定,但类型确定。

  • kotlin 把可变参数 当做数组处理。
  • 可变参数只能出现在参数列表的最后。
text("num is 123",1,2,3)

fun text(str: String,vararg num: Int) {
    println(str)
    for (n in num) {
        println(n)
    }
}

关于空值null的详细讲解见 空指针检查

函数

import kotlin.math.max

fun main(args: Array<String>) {
    val x = 10
    val y = 20
    var w: String
    w = maxNum(x,y)
    println(w)
    println(maxNum2(x,y))
}

fun maxNum(a: Int,b: Int) : String {
    val w = max(a,b)  // max 为系统提供的库函数
    return w.toString()
}
  • 函数就是具有特定功能的一段独立小程序,函数也称为方法。
  • 函数可以将功能代码进行封装,便于对该功能进行复用,提高了代码的复用性,
  • 函数只有被调用才会被执行。
  • 函数与方法这两个概念没有区别,只是不同的语言叫法习惯不同而已. 比如java中习惯叫方法,而kotlin中习惯叫函数
  • 函数定义的基本语法
    fun methodName(param1 : Int, param2 : Int) : String {
    return “DDD”
    }
  1. fun关键字
  2.  methodName 函数的名称(自定义)
  3.  ()中是参数个数以及类型,参数个数可变,也可空()
  4.  参数定义格式是,参数名(自定义) : 参数类型。多个参数使用 , 符号相隔。
    比如:param1为参数名,Int 为参数类型
  5.   : String 函数返回值的类型, 如果无返回值,可以写 : Unit   或 不写。
  6.  {}中是函数体 编写具体逻辑

函数有哪些类型呢?

  • 函数从参数角度,可以分为有参函数以及无参函数;
  • 从返回值角度,可以分为有返回值的函数以及没有返回值的函数。

嵌套函数

  方法里面还可以还可以定义方 法。这样的方法称为嵌套方法。

fun test() {
    fun sum(x: Int,y:Int): Int {
        return x + y
    }
    println(sum(1,9))
    println(sum(2,8))
}

涉及到的库中函数
这里kotlin库函数:指将某些函数放在同一个文件或者包下,提供给开发者调用;因为是kotlin库封装的,所以我们修改了函数名,就无法表示库函数的功能了。

main() 
kotlin程序的入口函数,计算机运行起来第一个默认找的第一个运行的函数。
println()  或 print() 
打印括号里面内容到控制台。println输出内容的时候带换行符,而print不会
readLine() 
获取控制台输入的一行字符
max() 
比较传入的两个值的大小

相比于Java,Kotlin中main方法不用放在一个类里面,可以独立存在。

**相关函数见常见函数 **

条件语句

If语句

  在生活中,经常在不同的条件下,做什么样的事情。那么编程中,就是通过If条件语句来实现的。

  • if语句可以使用每个条件的最后一行代码作为返回值。(与java不同处)
  1. 基本写法
if(条件){
   ...条件满足逻辑
}else{
   ...条件不满足逻辑
}
  1. 嵌套写法
if(条件){
   ...
}else if(条件){
   ...
}else{
   ...
}

示例代码

fun main(args: Array<String>) {
    println(textIf(2, 3))
}

fun textIf(x: Int, y: Int): Int {
//    var value = 0
//    if (x > y) {
//        value = x
//    } else {
//        value = y
//    }
//    return value;

    // if 语句的不同处
    return if (x > y){
        x
    }else{
        y
    }
}

When语句

  • 扩展:when 类似于 switch语句,但是比switch更方便使用,还支持类型匹配。

  如果条件为已知的几种,则可以使用When语句对这些情况分别判断与处理,代码编写上比if语句更加可读。

  • when语句可以使用每个条件的最后一行代码作为返回值。(与java不同处)

比如:抽号码时,有1,2,3等号码;when中的参数就是号码;匹配值就是1,2,3;条件表达式就是拿到该号的人做的事情;else 表示 参数 与任何一个匹配值都不符时,要执行的事。

  1. 基本语法:
when (参数){
      匹配值 ->条件表达式,也指运行的逻辑
      匹配值 -> 条件表达式
      ...
      else -> 条件表达式
}

其中 else 表示都未匹配时,执行的步骤。(参数) 有时可以不用写。

  1. 代码示例
fun main(args: Array<String>) {
    println(textWhen("D"))
    println(textWhenNoParams("D"))
    val num = 10
    textWhenClass(num)
    
}
fun textWhen(word: String) = when (word) {
    "A" -> "a"
    "B" -> "b"
    "C" -> "c"
    "D" -> "d"
    else -> "E"
}
// 这里,直接以when语句的最后一行作为返回值,也就可以直接在函数后面使用=,并省略部分定义
// 等价于下面代码
fun textWhenNoParams(word: String): String{
    val a = when {
        word == "A" -> "a"
        word == "B" -> "b"
        word == "C" -> "c"
        word == "D" -> "d"
        else -> "E"
    }
    return a
}

fun textWhenNoParams(word: String) = when {
    word == "A" -> "a"
    word == "B" -> "b"
    word == "C" -> "c"
    word == "D" -> "d"
    else -> "E"
}

fun textWhenClass(num: Number) {  // Number 系统库
    when (num) {
        is Int -> println("Int")
        is Double -> println("Double")
        else -> println("unknown")
    }
}

for与while语句与区间

  生活中某些情况下,我们需要重复的做某件事。编程中就需要使用for或者while语句来进行循环执行某些逻辑。

1.基本写法

while (条件){
   条件满足执行逻辑
}

// for 语句
for (参数 in 区间){
     条件满足执行逻辑
}

  • 在循环语句中,引入了区间的概念。
    var range = 0…10
    表示创建一个0到10的区间,且两端都是闭区间。 数学上:[0,10]

  • . .符合   用来创建两端闭区间的关键字

  • until 关键字 用来创建左闭右开的区间。 0 until 10   就是   [0,10)

  • . .   与 until 都是左边比右边大,也就是升区间

  • downTo 关键字 可以用来创建降区间 10 downTo 0   就是   [10,0]

  • 区间表示相关的类有 IntRange、LongRange、CharRange,相关的
    接口有 ClosedRange。

//区间的语法示例,开区间(1,10)
    val way1 = IntRange(2,9)
    val way2 = 2.rangeTo(9)
    val way3 = 2..9
    val way4 = 2 until 10
    println(way1.toList())
    println(way2.toList())
    println(way3.toList())
    println(way4.toList())
  • for语句中,与in 关键字一起使用,默认是i++ 的效果。如果想跳过一些元素,可以使用step 关键字用来指定每次递增多少。

示例代码

    var i = 0
    while (i < 10){
        println(i)
        i++
    }

// for 语句
    for (i in 0..10){
        println(i)
    }
    
    for (i in 0 until 10 step 2){
        println(i)
    }

觉得有帮助的点下赞哟,毕竟三连步骤更多,嘻嘻,谢谢大家的支持(* ^ ▽ ^ *)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值