首页 > 其他分享 >第一节 Kotlin基础

第一节 Kotlin基础

时间:2023-12-11 20:13:30浏览次数:38  
标签:Java 常量 val Kotlin 基础 第一节 关键字 标识符

Kotlin基础

  • 简介

主要介绍:

  1. 开发环境的搭建
  2. Kotlin基本语法

开发环境搭建

Kotlin依赖于Java虚拟机,需要JDK。

Java程序运行过程大概为:

Java源文件(*.java)-> 字节码文件(*.class)-> 可执行程序

其中通过Java编译器javac和Java解释器java进行编译与解释。

Kotlin类似java编译解释过程:

Kotlin源文件(*.kt)-> 字节码文件(*Kt.class)-> 可执行程序

这里用到了Kotlin编译器kotlinc和Java解释器(通过java命令解释,但是需要Kotlin运行时库支持才能正常运行)


通过上述描述,我们大概知道需要JDK和Kotlin编译器才能运行Kotlin代码。

Kotlin基本语法

  1. 标识符

    Kotlin语言中标识符的命名规则:

    1. 区分大小写
    2. 首字符可以是下划线或字母,但是不能为数字
    3. 除首字符外其他字符,可以是下划线、字母和数字
    4. 硬关键字(Hard Keywords)不能为标识符,软关键字(Soft Keywords)、修饰符关键字(Modifier Keywords)在它们适用场景外可以作为标识符使用
    5. 特定标识符field和it

    field标识符用于属性访问器中访问属性支持字段;it标识符用于Lambda表达式中,在省略参数列表时作为隐式参数。

    注意:如果一定要使用关键字作为标识符,需要在关键词两侧添加“`”符号,例如:`while`。

    • 硬关键字:

    as,as?,break,class,continue,do,else,false,for,fun,if,in,!in,interface,is,!is,null,object,package,return,super,this,throw,true,try,typealias,val,var,when,while.

    • 软关键字:

    by,catch,constructor,delegate,dynamic,field,file,finally,get,import,init,param,property,receiver,set,setparam,where

    • 修饰符关键字

    abstract,annotation,companion,const,crossinline,data,enum,external,final,infix,inner,internal,lateinit,noinline,open,operator,out,override,private,protected,public,reified,sealed,suspend,tailrec,vararg.

  2. 常量和变量

    1. 变量,在标识符前加关键字var
    2. 只读变量,在标识符前加关键字val
    3. 常量,在标识符前加const val

    常量和只读变量一旦初始化都不能被修改,二者区别:

    1. val声明的是运行期常量
    2. const val声明的是编译器常量,其只能用于顶层常量或声明对象中的常量声明,而且只能是String类型和基本数据类型

    该如何选择使用var还是val?

    在使用var和val均能满足需求的情况下,原则上优先使用val,val可以确保程序运行过程中不会错误修改变量内容。同时如果声明类型使用val,则可以得到类似于C++中常量指针的效果,其引用的对象不会被修改,但其引用对象的内容可以被修改。

  3. 注释

    1. 单行注释,//
    2. 多行注释,/* ... */
  4. 表达式

    Kotlin在对变量或常量赋值时,采用“冒号+数据类型”的方式:

    val a1:float=0.1f
    val a2:int=1
    

    同时为了代码更加简洁,Kotlin将一些常用语句进行简化,使之成为表达式形式。例如:控制结构表达式、try表达式、函数体等等。

  5. 为了防止类、接口、枚举、注释和函数等内容命名冲突,Kotlin引入包概念,本质上与C++的命名空间一样。

    语法格式:package pkg1[.pkg2[.pkg3...]]

    命名规范:全为小写

    包引入

    为了能够使用包中内容,需要通过import语句,import语句位于package语句之后,所有类的声明之前

    语法格式:import pkg1[.pkg2...].(内容名|*)
    为了编程规范,建议明确引入特定内容名,而不是采用“包名.*”方式以通配符将包下所有内容引入。

标签:Java,常量,val,Kotlin,基础,第一节,关键字,标识符
From: https://www.cnblogs.com/aaroncoding/p/17895441.html

相关文章

  • .NET Core MVC基础之返回文件类型
    .NETCoreMVC基础之返回文件类型......
  • 【python基础之命名空间与作用域】---命名空间与作用域
    title:【python基础之命名空间与作用域】---命名空间与作用域date:2023-12-1118:44:060updated:2023-12-1118:44:00description:cover:https://home.cnblogs.com/u/dream-ze/【一】名称空间与闭包【1】什么是名称空间名称空间即存放名字与对象映射/绑......
  • 基础篇(面试题)
    1、Java语言有哪些特点2、面向对象和面向过程的区别3、八种基本数据类型的大小,以及他们的封装类4、标识符的命名规则5、instanceof关键字的作用6、Java自动装箱与拆箱面试题1:面试题2:7、重载和重写的区别8、equals与==的区别9、Hashcode的作用10、Strin......
  • Java基础面试题
    一、面试题汇总1.请简述java特点?简单、平台无关性、面向对象、多线程、分布性、高性能(相对于其他解释型语言)、健壮性、开源2.什么是JDK,JRE,JVM及它们之间的关系?JDK是JAVA的核心,包括JRE(JAVA虚拟环境)、编译器、运行工具等JRE是JAVA运行环境,包括JVM、JAVA平台核心类和支......
  • 掌握TS 从基础到深度理解,晋级TypeScript高级开发的几个实战经验
    TypeScript作为JavaScript的超集语言,在现代前端开发中扮演着重要的角色。掌握TypeScript并深入理解其高级特性,将使开发者能够更加高效地进行项目开发。本文将分享几个实战经验,帮助开发者从基础到深度理解TypeScript,并实现晋级到TypeScript高级开发的目标,并提供相关代码示例。类型注......
  • 【python基础之函数】--- 函数入门
    title:【python基础之函数】---函数入门date:2023-12-0818:50:06updated:2023-12-1114:30:00description:cover:https://home.cnblogs.com/u/dream-ze/函数的基本使用目前为止,借助之前的学习内容,是已经能开发一些功能简单的小程序了但随着程序功能......
  • 【Lidar】Laspy库介绍+基础函数(读取、可视化、保存、旋转、筛选、创建点云数据)
    ​1Laspy库介绍        laspy是一个Python库,主要用于读取、修改和创建LAS点云文件。该库兼容Python2.6+和3.5+,并且可以处理LAS版本1.0-1.3的文件。        在laspy库中,可以使用命令行工具进行文件操作,如格式转换和验证,以及比较LAS文件。此外,laspy还支持分块......
  • 【Cpp 语言基础】简单聊一聊to_string
    头文件:#include<string>功能:将数字常量转换为字符串参数:value返回值:转换好的字符串重载版本:std::stringto_string(intvalue);(1)(C++11起) std::stringto_string(longvalue);(2)(C++11起) std::stringto_string(longlongvalue);(3)(C++11起) std::stringto......
  • 人工智能基础 - 生成对抗网络(GAN)
    GAN概述在讲GAN之前,先讲一个小趣事,你知道GAN是怎么被发明的吗?据IanGoodfellow自己说:之前他一直在研究生成模型,可能是一时兴起,有一天他在酒吧喝酒时,在酒吧里跟朋友讨论起生成模型。然后IanGoodfellow想到GAN的思想,跟朋友说你应该这么做这么做这么做,我打赌一定会有用。但是朋友不......
  • 用Kotlin抓取微博数据并进行热度预测
    闲来无事,逛逛微博,看着每条热度很高的博文趣事,心想能否通过爬虫抓取微博热度并进行趋势分析,说干就干,这里需要注意的问题我会一一标注。爬虫ip信息的设置是在爬虫程序中进行的。爬虫ip信息可以帮助爬虫程序在访问目标网站时进行匿名化处理,以避免被目标网站检测到并封禁IP。以下是一......