跟我一起学“仓颉”编程语言—函数的定义、调用和执行

目录

一、函数的定义

二、函数的调用和执行

三、小结


 

与数学里的函数不同,在仓颉中,函数是一个带有名字用于完成指定操作的代码块。(指定操作的代码块就初步的有了封装的思想,什么是封装,后面会给大家详细介绍)。

一、函数的定义

函数的结构:

func 函数名(参数1: 参数类型, 参数2: 参数类型, ...): 返回值类型{

        函数体

}

代码如下:

package Study

func sayHi() {
    println("你好!")
}

main(): Int64 {
    
    return 0
}

注意:定义的sayHi()函数,没有参数,也没有返回值

什么是函数参数?

一个函数可以有0个到多个参数,参数分为:非命名参数和命名参数。

  • 非命名参数函数:
package Study

func add(a: Int64, b: Int64) {
    println("a + b = ${a + b}")
}

main(): Int64 {
    
    return 0
}
  • 命名参数:
package Study

func add(a!: Int64, b!: Int64) {
    println("a + b = ${a + b}")
}

main(): Int64 {
    
    return 0
}

注意:命名参数可以设置默认值

package Study

func add(a!: Int64 = 7, b!: Int64 = 8) {
    println("a + b = ${a + b}")
}

main(): Int64 {
    
    return 0
}

注意:命名参数和非命名参数可以组合使用,但是命名参数必须在非命名参数之后

package Study

func add(a: Int64, b: Int64, c!: Int64) {
    println("a + b = ${a + b}")
    println("${c}: 在该函数里我是多余的")
}

main(): Int64 {
    
    return 0
}

注意:在仓颉代码中,函数参数是不可变的。

错误代码如下:

package Study

func add(a: Int64, b!: Int64) {
    a = a + 1
    b++
    println("a + b = ${a + b}")
}

main(): Int64 {
    
    return 0
}

正确代码:

package Study

func add(a: Int64, b!: Int64) {
    var m = a + 1
    var n = b + 1
    println("a + b = ${a + b}")
    println("m + n = ${m + n}")
}

main(): Int64 {
    
    return 0
}

什么是函数返回值呢?

函数的返回值是函数被调用后得到的结果的类型。

package Study

func add(a: Int64, b!: Int64): Int64 {
    return a + b
}

main(): Int64 {
    
    return 0
}

注意:return后跟函数返回值,且函数返回值类型必须与函数类型保持一致,与变量类型一样,函数类型也可以不写,有仓颉的编译器自动推断。

二、函数的调用和执行

定义函数后,只要不调用就不会执行,只有调用以后,才可以执行。

  • 非命名参数函数的调用
package Study

func add(a: Int64, b: Int64): Int64 {
    return a + b
}

main(): Int64 {
    println(add(1,2))
    return 0
}
  • 命名参数函数的调用
package Study

func add(a!: Int64, b!: Int64): Int64 {
    return a + b
}

func sum(a!: Int64 = 2, b!: Int64 = 3): Int64 {
    return a + b
}

main(): Int64 {
    println(add(a: 1, b: 2))
    println(sum())
    println(sum(a: 1, b: 2))
    return 0
}
  • 非命名参数函数和命名参数函数组合函数的调用
package Study

func add(a: Int64, b!: Int64 = 2): Int64 {
    return a + b
}


main(): Int64 {
    println(add(1))
    println(add(1, b: 3))
    return 0
}

函数执行过程:

程序会先找到函数定义的位置,然后将实际参数传递给函数的形式参数,接着执行函数体内的代码,最后同返回值跳转到函数调用的位置,执行后面的代码。函数体内的代码,依旧可以写顺序结构、分支结构和循环结构。

三、小结

本章为大家详细的介绍了仓颉编程语言中函数的定义、调用和执行的内容,下一章,为大家带来作用域、函数重载和递归函数的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉服务端开发有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学徒钝子生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值