Kotlin-1-基础(变量+null值+函数声明)

目录

1、变量的声明

2、对null的约定

3、对函数的约定

4、类型推导


1、变量的声明

/**
 * kotlin对变量有两种分类
 * var:可变的变量
 * val:不可变的变量(不是常量)
 */

var age: Int = 18
val age1: Int = 19

2、对null的约定

/**
 * kotlin对变量的null进行了区分
 */

var name: String = "Zhang San" //为不可null的变量
var name1: String? = null      //为可null的变量
var name2: String = null       //报错


/**
 * 相同数据类型的可null和不可null的两个变量是两种完全不同的类型的变量
 * 1、它们之间不能直接互相赋值
 * 2、不可null和可null的两种类型之间的转换类似于int和float
 *   (可null是不可null的高级类型)
 */

private fun testNull(){
    name=name1     //1、报错,不可null的变量不能直接转换为可null
    name=name1!!   //2、可以加两个感叹号进行类型强转
    name1=name     //3、不可null可的变量可以隐式转换为可null
}

注意:由于null只能被存储在Java的引用类型的变量中(基本数据类型不能赋值为null),所以在Kotlin中基本数据类型的可null版本都会使用该类型的包装类型。同样,如果你用基本数据类型作为范型类的类型参数,Kotlin同样会使用该类型的包装类型。

3、对函数的约定

/**
 * 对函数的约定
 * 1、以fun开头表示声明一个函数
 * 2、如果需要返回类型,将采用getOld1的形式

 *3、如果函数的函数体只有一条语句的话,可以使用=来将函数体赋值给这个函数名称
 */

private fun getOld(old:Int){}

private fun getOld1(old:Int):Int {
    return 18
}

private fun getAge(age1:Int,age2:Int) = age1+age2

4、类型推导

Kotlin语言中我们可以不显式的声明变量的类型,编译器会自动给我们推导出类型。

val int1=10
val boolean1=true
val long1=1000L
val float1=10.1f
val double1=10.2
val string1="张三"
val char1='a'

fun main() {
    println("int1的类型=${int1.javaClass.name}")
    println("boolean1的类型=${boolean1.javaClass.name}")
    println("long1的类型=${long1.javaClass.name}")
    println("float1的类型=${float1.javaClass.name}")
    println("double1的类型=${double1.javaClass.name}")
    println("string1的类型=${string1.javaClass.name}")
    println("char1的类型=${char1.javaClass.name}")
}
//输出结果
int1的类型=int
boolean1的类型=boolean
long1的类型=long
float1的类型=float
double1的类型=double
string1的类型=java.lang.String
char1的类型=char
发布了82 篇原创文章 · 获赞 16 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/qq_34589749/article/details/103381808