KotlinKotlin学习交流Kotlin编程

Kotlin基础之函数与变量

2018-04-12  本文已影响3人  墨白历险记
开始学习走路之"Hello world!"
# java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}
#  kotlin
fun main(args: Array<String>) {
    println("Hello wolrd!")
}

上述为分别使用Java和Kotlin语言编写的"Hello World!" 程序,
相比而言,Kotlin更为简洁,接下来我就为大家解释一下这段代码:

函数

在上面我们已经看到了怎么声明一个没有返回值的函数,那么如何声明一个有返回值的函数呢?返回类型应该放在哪里呢?如下:

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

函数的声明以关键字fun开始,后面紧跟函数名称.
这个例子中的函数名称是max,接下来括号里面的是参数列表.
参数列表后面跟着返回类型,它们之间用一个冒号隔开.


函数声明

注:

在Kotlin中,if是表达式而不是语句.
表达式和语句的区别在于,表达式有值,并且能作为另一个表达式的一部分使用.
而语句总是包围着它的代码块中的顶层元素,并且没有自己的值.
在Java中,所有的流程控制结构都是语句.
而在Kotlin中,除了循环(for,do和do/while)以外大多数流程控制结构为表达式.
另外一方面,Java中的赋值操作是表达式.而在Kotlin中反而是语句.

表达式函数体

由于上述代码的函数体部分是由单个表达式构成的,可以用这个表达式作为完整的函数体,并去掉括号和return语句:

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

甚至于更为简化的省掉返回类型

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

注:只有表达式函数体的返回类型可以省略.

变量

在Java中声明变量的时候会以变量类型开始,后面解释变量名.
在Kotlin中是行不通的,因为许多变量声明的类型都可以省略.
所以在Kotlin中以关键字开始,然后是变量名字,最后可以加上变量类型(也可以不加).

val question = "How old are you"
val answer = 42
val ontherAnswer: Int = 42;

如变量没有初始化器,也就是没有复制,则必须制定变量的类型.

val name: String
  name = "starfall"
可变变量与不可变量

声明变量的关键字有两个:

val message: String
    if(true){
      message = "true"
    }else{
      message = "false"
    }

注:尽管val引用自身是不可变的, 但是它指向的对象可能是可变的.例如:

val languages = arrayListOf ("Java")
      languages.add("Kotlin")

使用var关键字允许变量改变自己的值,但是类型不能更改.

字符串模板

修改"Hello World!" 如下:

fun main(args: Array<String>) {
    val name = if (args.size > 0) args[0] else "Kotlin"
    println("Hello,$name!")
}

上述代码在声明了一个变量name,并且在后面的字符串字面值中使用了它.和许多脚本语 言一样.Kotlin允许在字符串字面值中引用局部变量,只需要在变量名称前面加上字符$,等价于Java中的字符串连接.


fun main(args: Array<String>) {
    val name = if (args.size > 0) args[0] else "Kotlin"
    println("Hello,${args[0]}!")
}

使用${} 插入args数组中的第一个元素.
fun main(args: Array<String>) {
    println ("Hello, ${if (args.size > 0) args[0] else "someone"}!")
}

还可以在双引号中直接嵌套双引号,只要它们处在某个表达式的范围内(即花括号内):
上一篇 下一篇

猜你喜欢

热点阅读