Kotlin基础学习(2)

kotlin基本语法

首先我们来个demo1:

//变量的声明和使用

fun main(args: Array<String>) {//固定写法,函数入口
    //声明变量并对他赋值,输出结果看是否赋值为"小明!"
    var name = "小明!"
    println("Hello, "+name)

    //改变name变量的值,再次输出,看是否改变
    name = "小华!"
    println("Hello, "+name+" Where are you going?")

    //下面这句如此赋值会报错,出现"The integer literal does not conform to the expected type String"
    //即整型数据无法赋值给字符串变量
//  name = 9;

}

声明时我们有给变量指定类型,为什么会在给name赋值为9时会报错?

因为在kotlin中数据有两种声明方式,一种是隐式声明,另一种是显示声明,而这儿的是隐式声明,隐式声明有两个特点:
1. 数据声明时没有人为明确数据类型
2. 数据必须初始化,否则会报错
因为数据必须初始化,kotlin就可以根据初始化的数据智能判断出该变量的类型,这样在demo中name的类型就是String,所以在下方给name赋值为9时就会报Integer无法赋值给声明为String的变量的错

其次我们再来个demo2:

fun main(args: Array<String>) {
    //显示声明整型数据
    var i:Int = 18
    println("I'm " + i + " years old!");

    //显示声明字符串数据
    var s:String = "world!"
    println("Hello "+s);

    //常量
    val str = "How are you?"
    println(str);

    //下面这句报错,因为str通过val声明为常量,所以只能第一次赋值,并不一定要初始化赋值
    //当第二次赋值时,就会报错
//  str = "ni hao!"

    //下面案例充分说明上述如果没有声明时没初始化,可以后续给它赋值的观点
    val m:String
    m = "I'm fine!"
    print(m)
}

然后我们再来看下编译器中代码:

在kotlin中,我们可以不用创建包,声明包名,默认为 default 包,当然为了规范代码,建议将包名带上,因为这样好划分每个包中不同的业务模块

在每个kotlin文件中,我们没有看到像Java一样的 import java.util.* 这种导入Java自己带的包文件,那是因为kotlin的包默认会导入每个kotlin文件中,有如下包:

  • kotlin.*
  • kotlin.annotation.*
  • kotlin.collections.*
  • kotlin.comparisons.*
  • kotlin.io.*
  • kotlin.ranges.*
  • kotlin.sequences.*
  • kotlin.text.*

类可有可不有,就像上图一样,虽然创建了JGrammar.kt文件,但是文件中并没有类,如果存在类,类名也可以和创建的文件名不一样

这里写图片描述

就像上图显示一样,文件名为JObject,但是文件中的类名为Jp,这儿完整的名称是com.leezp.test.Jp(当前包名加上类名就是当前类完整的名称,如果文件中有个在类以外的独立方法test,那它完整的名称也是包名加方法名,即com.leezp.test.test),在其他包中需要用到这个类,就需引用完整的包名!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值