语言基础 --- 3、程序结构

3-1 常量与变量(val,var) 

1)什么是常量
❥ val = value, 值类型
❥ 类似Java的final
❥ 不可能重复赋值
❥ 举例:运行时常量:val x = getX()
         编译期常量:const val x = 2

编译器常量 必须用const 关键字,值类型,类似于Java里面的final类型。

2)什么是变量
❥ var = variable
❥ 举例: var x = “HelloWorld”  // 定义变量
         x = “HiWorld” // 再次赋值

3)类型推导
❥编译器可以推导量的类型
─ val string = “Hello”  // 推导出String类型
─ val int = 5    // Int类型
─ var x = getString() + 5    // String类型

3-2 函数(function)
任何函数都以 fun 开始,args是main函数的参数,参数类型是Array<String>。如果参数多的话可以用逗号隔开,这个函数没有返回值。
没有返回值的话,实际上返回的是 Unit,相当于Java里面的void。
大括号里面是函数体。

fun main(args: Array<String>):Unit {
    println(FINAL_HELLO_CHINA);
}

Unit 可以省略不写,如下所示
fun main(args: Array<String>) {
    println(FINAL_HELLO_CHINA);  // 输出结果:HelloChina  
}

范例:下面写一个  1 + 2 = 3

fun main(args: Array<String>) {
    checkArgs(args)
    val arg1 = args[0].toInt()
    val arg2 = args[1].toInt()
    println("$arg1 + $arg2 = ${sum(arg1, arg2)}")
}
fun checkArgs(args: Array<String>) {
    if (args.size != 2) {
        printUsage()
        System.exit(-1)
    }
}
fun printUsage() {
    println("请传入两个整型参数,例如 1 2")
} 

概念:什么是函数 ?

❥ 以特定功能组织起来的代码块:

---  fun[函数名]([参数列表]):[返回值类型]{ [函数体] }

---  fun[函数名]([参数列表]) = [表达式]

❥ 举例:

---  fun sayHi(name:String) { println("Hi, $name") }

---  fun sayHi(name:String) = println("Hi, $name")

❥ 匿名函数:

无名氏一直是神一样的存在;

fun([参数列表])...

举例: ----  val sayHi = fun(name:String) = println("Hi, $name")       注意:如果不赋值给一个变量是会报错的。

❥ 编写函数注意事项

功能要单一;

函数名要做到顾名思义;

参数的个数不要太多;( 参数太多虚拟机的运行效率大打折扣、不易读 )

3-3 Lambda表达式  (就是匿名函数)

fun main(args: Array<String>) {
    printlnHello();
    println(sum(1, 3))
    println(sum.invoke(1, 3))
    // 以上两个输出 结果是一样的。
}

/**
 * 定义 Lambda表达式
 * arg1 + arg2 就是 Lambda表达式  返回值
 *
 * 返回类型:(Int, Int) -> Int
 */
val sum = { arg1: Int, arg2: Int ->
    println("$arg1 + $arg2 = ${arg1 + arg2}")
    arg1 + arg2
}

/**
 * 定义 Lambda表达式
 *
 * 返回类型:()-> Unit
 */
val printlnHello = {
    println("Hello")
}
以下是输出结果:
Hello
1 + 3 = 4
4
1 + 3 = 4
4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值