Kotlin—基本语法(一)

欢迎大家加入正式我的Kotlin语言学习~


一、标识符和关键字

标识符就是大家给函数(Java中的方法)、变量、常量、类、接口取的名字。

关键字又称保留字,就是系统已经定义好的标识符。目的就是告诉开发人员,不能使用关键字为标识符。

标识符的规则:

  1. 不能使用$或者直接使用硬关键字
  2. 区分大小写
  3. 首字符,可以是下划线和字母、不能使用数字(大部分语言都是)
  4. 不能使用field 用在属性访问器内部来引用该属性的幕后字段
  5. 不能使用it 在 lambda 表达式内部来隐式引用其参数

关键字

  1. kotlin的关键字都是小写(和Java一样)
  2. 硬关键字:无法直接做为标识符,除非使用``。不建议
  3. 软关键字:可以做标识符,不建议
  4. 修饰符关键字:可以做标识符,不建议

怎么使用关键字作为标识符呢?

  val class="111"   // 错误

  val `class`=11    //正确

二、常量和变量

常量

不能改变的量,一旦赋值就无法再次赋值的量,和变量相反。

运行期常量

声明一个运行期常量:

    val wang="王"

它是在运行时才赋值的常量,就是说你可以在运行时前再给它赋值(初学不必太纠结,知道val是常量就行)

顶级常量

声明一个顶级常量:

val wang="王"
class Demo {

}

顶级变量可以在别的处使用看栗子1,它属于这个.kt文件(这里你就要了解Kotlin的导包和java有些不同,看栗子2)

栗子1

val w="1"

class Demo {
    val wang ="王"
   fun a(){
       println(w)
       println(wang)
       
   }
}
class Demo2{
    fun a(){
        println(w)
      //  println(wang)   //编译不通过
    }
}

栗子2

1.stringone是一个常量

2.我在这里使用stringone,不属于一个包,而且stringone是一个变量

3.包的位置不同

编译期常量

就是在,编译期时就赋值的常量

声明一个编译期常量:

const val wang="王"
class Demo {

}

注意点:

  • 位于顶层或者是 object 声明 或 companion object 的一个成员
  • 以 String 或原生类型值初始化(就是只能是String和基本数据类型)
  • 没有自定义 getter

使用中可能遇到的坑

变量

变量就是就是一个可以变的量,它可以多次赋值。

变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字

声明一个变量

var wang ="王"
    fun `var` (){   //var是关键字哦,没有看懂的请仔细看标识符讲的
        wang ="别的王"
    }

所以变量可以再次赋值,就不展开说了,具体和常量相似,也有顶层变量等

开发中优先考虑使用val声明,防止程序中间修改值后发生错误。但也不要过渡

自动类型推断

在Java中声明一个常量需要这样

  final String wang="王";

你需要告诉它是String类型,Kotlin不需要

class Demo {
    val wang="王"   //编译通过
    // val wang        //编译通过错误
}

你可以看到,如果需要自动推断类型,你必须给它赋值,要不然编译器根本不知道是什么类型。

语句和表达式

语句:一条指令,它没有返回值

表达式:有返回值的代码

举栗子

        var max = 1 + 2   //表达式
        var min = false
        while (min) {   //语句

        }
//        var `while` =while (min) {  //编译失败
//
//        }

注意 Kotlin的 if表达式也可以有返回值

 fun main(args: Array<String>) {
        var `var` = false
        var a = if (`var`) {
            "王"
        } else {
            "不是王"
        }
        println(a)
    }

Kotlin的语句结束

在java中语句是以;为结束的,Kotlin也是。但是有不同之处,你好好看看

    fun main(args: Array<String>) {
        // 第一种写法
        var max = 1
        var min = 2

        // 第二种写法
        //  var my=3 var you=4/ //编译错误

        // 第三种写法
        var my = 3; var you = 4
    }

注意第二种是错误的,事实上;还是结束语句,但是大部分可以省略,不行你格式化代码一下

第一章东西就不要太多了,接下到下一篇文章再讲。

小技巧:Java中常量为什么定义为public static final  其实Kotlin的编译期常量才像Java的中的常量

猜你喜欢

转载自blog.csdn.net/qq_41346910/article/details/86702329