Kotlin入门笔记

Kotlin入门笔记


Hello World

fun main(args:Array<String>):{
   println("hello, world!")
}

在java中方法是写在类中的

fun是关键字,main就是方法名,函数的参数就是Array这个参数类型,args就是参数名,{ }这里面就是函数体,在java中只有方法这一说法,但也差不多,别的语言也有函数的说法

函数

fun max(a:Int,b:Int):Int {
    return if(a>b) a else b
}
>>>println(max(1,2))

在hello world中有提到函数但没有返回值类型,没有错就是在参数括号:Int这个就是了,总结名字总是在数据类型的前面,上面的if及其内容,它和java中的三元运算符相似,但它是表达式,没看错就是表达式,不是语句

在java中表达式与语句如何区别:表达式由运算符和运算符对象组成,但语句就是最小执行单元,一个语句可以由若干行组成

在kotlin中表达式与语句的区别就是:表达式有返回值,并且能作为另一个表达式的一部分使用

语句:总是包含着它的代码块中的顶层元素,并且没有自己返回值,for,do和do/while以外大多数控制结构都是表达式

在java中赋值语句就是表达式,在kotlin中标成语句

表达式函数体

上面的函数可以变成下面的写法

fun max(a:Int,b:Int):Int=if(a>b) a else b

为什么能那么写就是因为它由单个表达式构成的,可以用这个表达式作为完整的函数体,并且去掉花括号和return语句

如果函数体写在花括号中,称为函数有代码块体,如果直接返回一个表达式,它据说表达式体

还可以等于

fun max(a:Int,b:Int)=if(a>b) a else b

为什么有些函数可以不声明返回类型,作为一门静态类型语言,kotlin不是要求每个表达式都应该在编译期具有类型(通过上面的例子就可以深深感受到它独特的魅力,有种类似于人的语言现场说出来理顺逻辑,像数学那样用公式来表达,这个更感兴趣的是它如何实现的吧,底层)事实上,每个变量和表达式都有类型,即使没有显示地写出来,这种分析通常被称作类型推导

注意:只有表达式体函数的返回类型可以省略,对于有返回值的代码体函数必须显示地写出返回类型和return。。理由这个有助于你理解返回啥,上面那段是理论上可以实际上也可以,但最好不要这样做

变量

静态类型语言的魅力(感觉学完可以对js进一步学习了,以前咋没有呢,可能它被称为前端用的,虽然可以用系列来做全栈,每种语言都有自己的美,特点,优势,缺点就像是美女一般只有深入了解才知道,但要看到内在层次即数据结构和算法,这种感觉也可以帮助我们学习自然语言)

val question=" The Ultimate Question of Life,the Universe,and Everything"

val answer=42

也可以为

val answer:Int=42

和表达式体函数一样,不指定变量类型,编译器会分析初始化器表达式的值,并把它的类型作为标量的类型,在前面例子中,变量的初始化器42的类型是Int,变量就是这个类型

下面变量的类型就是double

val yearsToCompute=7.5e6 ---------7.5*10^6

可变变量和不可变量

val(来自value)—不可变引用,使用val声明不能在初始化后再次赋值,对应于java的final变量

var(来自variable)-----可变引用,和上面相反咯,对应于普通的java变量

默认情况下最好使用val,就像你和老婆说话喜欢用暗示吗

val引用自身是不可变的,但它指向的对象是可变的,就像你回家,家的地址,假设是不变的,但家可以是一层楼或者是n层楼,或者是几个老婆,这个和你家的地址有毛线关系吗

val languages=arrayListOf(“java”)

languages.add(“Kotlin”)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值