kotlin的变量和函数
来源:互联网 发布:如何找淘宝客 编辑:程序博客网 时间:2024/05/17 23:54
简介
在现今天的程序语言中,基于JVM的语言非常多,如Scala,Groovy,JRuby等,而kotlin和这些语言一样,都只提供编译器,没有提供运行环境。自从2017年的Google的IO大会上提出Kotlin成为Android APP开发语言,Kotlin就瞬间被人熟知,然后本人也加入了koltin的学习使用大军中了。
一、文件
Java 的文件后缀为 .java
kotlin 的文件后缀为 .kt
二、变量类型
java
Java中变量有:成员变量,局部变量
java的有基本数据类型,以及对应的包装类
基本数据类型 byte short int long float double boolean char 基本数据包装类 Byte Short Integer Long Float Double Boolean Character
kotlin
kotlin中变量有:成员变量,局部变量,还有 全局变量
kotlin中只有内置数据类型,有点像java包装类
内置数据类型 Byte Short Int Long Float Double Boolean Char
二、定义变量
java
Java
中变量必须定义在类里面,基本数据类型的成员变量都会有默认值,而其他类型和局部变量需要手动初始化
java
中没有明确的变量和常量的概念,但是可以用final
关键字定义不可修改的变量
int ok; //若是成员变量则默认初始化值为0int no =1; //定义int变量并初始化为1final long num; //final 关键字修饰,不允许在修改LongLong num =0L ; //包装Long类,没有默认值,需要收到赋值
kotlin
Kotlin
中变量定义与java
很大的不同,在Kotlin中,数据类型要放到变量名后面,并且用冒号:
分隔
Kotlin
中有明确的常量和变量的概念,以var
开头代表变量,val
开头代表常量
Kotlin
中有全局变量,也就是定义变量不需要在class类
中,直接写在外面就能被全局访问到
Kotlin
中所以数据类型都被视为一个对象,定义时都没有默认值
,需要手动初始化。
var ok:Int =0 //定义Int变量ok,初始化值为0var no:Int =1 //定义Int变量no,初始化值为1val num:Long =0 //定义Int变量num,初始化值为0
Kotlin
中在定义变量时不能直接赋null
值,如果需要强行赋空值,得在null
后加!!(强制为null)
或者?(可空)
Kotlin
定义变量时,手动初始化非空值,可以不用指定数据类型,类似JavaScript
var field:String =null //报错,不能直接初始null值var field:String =null!! //强制初始化为null,后续使用必须赋值,否则报空异常var field:String =null? //可空对象,后续使用不会报空异常var ok =0 //手动赋值初始化,可以不用定义类型
函数
编程语言,函数的定义基本都是由:
函数头
,参数
,返回值
几部分 组成
java
Java
中更习惯称为方法,方法名不需要任何(fun
,func
)标识修饰
java
中返回值必须写,如果没有返回值就必须是void
/** *默认修饰范围 default *@param m int类型的参数 *@return int类型 **/ int add (int m,int n){ return m+n // 没有返回值,使用void修饰 void study(String content){ System.out.print(content) }
kotlin
Kotlin
中函数名前必须使用fun
修饰,默认的修饰符为public
Kotlin
中返回值放到最后,之间用:
隔开,无返回值用Unit
(可省)代替
/** *默认修饰范围 public *@param m Int类型的参数 *@return Int类型 **/fun add (m:Int ,n:Int): Int { return m+n} // 没有返回值,可以用Unit修饰 fun study(content:String ):Unit{ println(content) } //没有返回值,Unit可以省略 fun study(content:String ){ println(content) }
注: 对于Kotlin的函数这么定义,初学的时候可能不习惯,甚至吐槽比Java差远了,要这么定义很麻烦,我开始也是有一点不喜欢,但是当我熟悉之后,我就喜欢上这种定义了
1、Kotlin是一门多目标编译语言,除了可以编译成Java Byte Code,还能编程生成javaScript,甚至还可以对IOS支持,所以这样的语法是符合大众风格的
2、我们定义函数的时候,绝大多少都是公开范围无返回的函数,Kotlin就可以不用像Java一样每次都写 public void 了
包(Package)
java
java
中的包(Package)和java中的目录是统一在一起的,当我们定义znq.demo.Myclass
的类的时候,包名为znq.demo
,而同时在我们的项目的目录结构中为创建对应的znq\demo目录结构
Kotlin
Kotlin
中的包(Package)和目录却是没有什么联系的,当我们定义znq.demo.Myclass
的类的时候,包名为znq.demo
,而在我们的项目的目录结构中为不一定需要创建对应的znq\demo目录结构
全局
java
java
中没有全局的概念,所有的变量和方法必须写在对应的类中
Kotlin
Kotlin
中的变量和函数可以直接写在文件下中,也就是类外面,文件中也可以不定义class
,这样的变量和函数被称全局变量(函数),它们不属于任何一个自己定义的类,可以在项目的全局中直接使用变量或函数名调用它们
- kotlin的变量和函数
- Kotlin 变量和属性
- Kotlin 变量和方法
- kotlin属性和变量
- kotlin的扩展函数和扩展属性
- Kotlin全局函数的引入和范围
- Kotlin学习记录(二)—— Kotlin的变量、属性、类、构造函数、继承、方法
- Kotlin——程序的灵魂组成之变量、属性和函数的基本语法(一)
- Kotlin变量和属性(五)
- kotlin的入口函数
- Kotlin教程学习-函数定义,变量声明
- Kotlin------函数和代码注释
- 3.kotlin 类和函数
- Kotlin开发Android笔记6:Anko和扩展的函数
- kotlin学习day4:类和函数的使用
- Hello Kotlin(四)变量和属性
- 变量变量和变量函数
- Kotlin之字面函数和函数表达式
- Echarts实时更新数据
- 分销系统如何加粉,三级分销政策,B2B2C分销规则
- 抽奖问题
- Illegal group reference"异常的分析
- YUV422 YUV420 Planar \ Semi-Planar \ Interleaved
- kotlin的变量和函数
- Java中的final,finally,finalize的区别
- B+Tree index structures in InnoDB
- 过滤器、监听器、拦截器的区别
- leetcode 659. Split Array into Consecutive Subsequences 分割连续序列
- CreateFile DeviceIoControl dwIoControlCode——应用程序与驱动程序通信
- 错误LifecyclePhaseNotFoundException,Unknown lifecycle phase "mvn". You must specify a valid lifecycle
- ztree的一些操作,不废话,上代码
- 线上抓娃娃方案的选型方法