博客
关于我
初识Kotlin之变量
阅读量:798 次
发布时间:2023-04-15

本文共 1759 字,大约阅读时间需要 5 分钟。

Kotlin变量的使用与Java对比分析

用Java开发了很多年,最近开始学习Kotlin。刚开始接触时,确实感到不适应,Kotlin相比Java确实不够严谨。但经过深入学习后,也免不了“真香定理”。作为一名程序员,可能很难客观评价一门技术语言的优缺点。很多人只是了解表面就开始发表评论,建议大家不要被网络上的信息左右。如果你有Java基础,学习Kotlin会非常快,而且会让你爱不释手。

从简单的Hello World开始,比较Java和Kotlin的区别,开启Kotlin的学习之旅。

Java代码示例:创建Java文件,定义HelloWorld类,编写main方法输出Hello World。

package com.java.helloworld;public class HelloWorld {    public static void main(String[] args) {        System.out.println("Hello World");    }}

Kotlin代码示例:创建Kotlin文件,定义main函数输出Hello World。

package com.kotlin.helloworldfun main(args: Array
) { println("Hello World")}

Kotlin不需要定义类类就可以拥有main方法。当然也可以先定义类再在类中定义main函数。Kotlin使用fun关键字定义函数。Kotlin的main函数没有public static void等关键字。这是Kotlin的语法特点之一。

Kotlin的变量声明与Java有明显区别。Java要求变量声明时必须先指定类型,再写变量名。而Kotlin先写变量名,最后写类型,由编译器智能推断。Kotlin默认推荐使用val修饰变量,表示不可变。使用var修饰变量时表示可变,常用于基本数据类型。

Kotlin变量声明示例:

fun main(args: Array
) { var b: Byte = 0 var s: Short = 0 var i: Int = 0 var l: Long = 0L var f: Float = 0.0f var d: Double = 0.0 var bl: Boolean = true var c: Char = 'c'}

Kotlin变量取值范围:

fun rangeValue() {    println("Byte (${Byte.MIN_VALUE} ~ ${Byte.MAX_VALUE})")    println("Short (${Short.MIN_VALUE} ~ ${Short.MAX_VALUE})")    println("Int (${Int.MIN_VALUE} ~ ${Int.MAX_VALUE})")    println("Long (${Long.MIN_VALUE} ~ ${Long.MAX_VALUE})")    println("Float (${Float.MIN_VALUE} ~ ${Float.MAX_VALUE})")    println("Double (${Double.MIN_VALUE} ~ ${Double.MAX_VALUE})")}

Kotlin变量显示转换:

fun variableConvert(char: Char) {    var number: Int = 1    println("显示转换成Int类型: ${number + char.toInt()}")    var num = 2    println("智能推断变量类型: ${num.javaClass}")}

Kotlin的变量特点:

  • 不支持Java的隐式类型转换,必须通过显式方法转换。
  • 可以省略变量类型,由编译器智能推断。
  • 变量默认不允许为null,需在类型后加上?才能允许null。

这些Kotlin特点让初次接触的开发者感到不习惯,但经过习惯后,依然能发现它的实用性。

转载地址:http://vzgfk.baihongyu.com/

你可能感兴趣的文章
oracle零碎要点---oracle em的web访问地址忘了
查看>>
Oracle零碎要点---多表联合查询,收集数据库基本资料
查看>>
Oracle静默安装
查看>>
【Bert101】变压器模型背后的复杂数学【02/4】
查看>>
Oracle面试题:Oracle中truncate和delete的区别
查看>>
ThreadLocal线程内部存储类
查看>>
thinkphp 常用SQL执行语句总结
查看>>
Oracle:ORA-00911: 无效字符
查看>>
Text-to-Image with Diffusion models的巅峰之作:深入解读 DALL·E 2
查看>>
Tensorflow.python.framework.errors_impl.ResourceExhaustedError:无法分配内存[操作:AddV2]
查看>>
TCP基本入门-简单认识一下什么是TCP
查看>>
tableviewcell 中使用autolayout自适应高度
查看>>
Symbolic Aggregate approXimation(SAX,符号聚合近似)介绍-ChatGPT4o作答
查看>>
Orcale表被锁
查看>>
svn访问报错500
查看>>
sum(a.YYSR) over (partition by a.hy_dm) 不需要像group by那样需要分组函数。方便。
查看>>
ORCHARD 是什么?
查看>>
Struts2中使用Session的两种方法
查看>>
Stream API:filter、map和flatMap 的用法
查看>>
STM32工作笔记0032---编写跑马灯实验---寄存器版本
查看>>