「Mac玩转仓颉内测版8」入门篇8 - Cangjie函数与方法

本篇介绍Cangjie编程语言中的函数与方法,帮助理解如何通过函数封装重复操作,提升代码的复用性和可维护性。

关键词
  • Cangjie函数
  • 方法定义
  • 参数传递
  • 返回值
  • 模块化与复用性

一、什么是函数?

函数是一个代码块,用于接收参数、执行操作并返回结果。在Cangjie中,函数可以接受多个参数,并支持多种返回值类型。


二、函数的定义与调用
2.1 定义函数

在Cangjie中,函数的基本定义格式如下:

cangjie 复制代码
func 函数名(参数1: 参数类型, 参数2: 参数类型): 返回类型 {
    // 函数体
    return 返回值
}
2.2 示例:加法函数
cangjie 复制代码
func add(a: Int64, b: Int64): Int64 {
    return a + b
}
2.3 调用函数

定义好函数后,可以通过以下方式调用:

cangjie 复制代码
main(): Int64 {
    let result = add(3, 5)
    println("结果是: ${result}")
    
    return 0
}

输出:

复制代码
结果是: 8

三、函数参数与返回值
3.1 参数类型

函数可以接受多个参数,参数的类型必须明确声明。

3.2 返回值类型

函数的返回值类型必须指定,若函数没有返回值,可将返回类型设为 Unit

示例:返回最大值的函数
cangjie 复制代码
func max(a: Int64, b: Int64): Int64 {
    if (a > b) {
        return a
    } else {
        return b
    }
}

调用:

cangjie 复制代码
main(): Int64 {
    let larger = max(10, 20)
    println("较大的数是: ${larger}")
    
    return 0
}

输出:

复制代码
较大的数是: 20

四、可选参数与默认值

Cangjie支持为函数参数设置默认值,使调用函数时可以选择性传递部分参数。

示例:带默认参数的函数
cangjie 复制代码
func greet(name: String, message!: String = "Hello"): Unit {
    println("${message}, ${name}")
}

调用:

cangjie 复制代码
main(): Int64 {
    greet("Alice")  // 使用默认值
    greet("Bob", message: "欢迎")  // 自定义消息

    return 0
}

输出:

复制代码
Hello, Alice
欢迎, Bob

五、匿名函数与Lambda表达式

匿名函数和Lambda表达式允许在没有函数名称的情况下定义简单的逻辑,适合处理一次性操作。

示例:Lambda表达式
cangjie 复制代码
let add1 = { a: Int64, b: Int64 => a + b }
println(add1(2, 3))  // 输出: 5

输出:

复制代码
5

六、方法与函数的区别

在Cangjie中,方法属于类的一部分,绑定在对象上;而函数是独立的代码块。

示例:类中的方法
cangjie 复制代码
class Calculator {
    func add(a: Int64, b: Int64): Int64 {
        return a + b
    }
}

main(): Int64 {
    let calc = Calculator()
    println(calc.add(30, 20))  // 输出: 50

    return 0
}

输出:

复制代码
50

小结

本篇介绍了Cangjie中的函数与方法,包括函数的定义、参数传递、返回值、可选参数、匿名函数等概念。通过这些内容,可以创建更加模块化、复用性更强的代码。


下篇预告

下一篇将通过一个综合案例,演示如何运用Cangjie编程语言中的函数和方法,敬请期待 「Mac玩转仓颉内测版9」入门篇9 - 综合案例篇


上一篇: 「Mac玩转仓颉内测版7」入门篇7 - Cangjie控制结构(下)
下一篇: 「Mac玩转仓颉内测版9」入门篇9 - 综合案例篇

作者:SoraLuna

链接:https://www.nutpi.net/thread?topicId=144

來源:坚果派

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


相关推荐
Misnice12 分钟前
Mac查看本机ip地址
网络协议·tcp/ip·macos
用户48221371677526 分钟前
Python——正则表达式(字符匹配-贪婪模式)
算法
二向箔reverse31 分钟前
经典算法题解析:从思路到实现,掌握核心编程思维
算法
天一生水water1 小时前
聚类的肘部法则原理
算法·支持向量机·聚类
蒟蒻小袁1 小时前
力扣面试150题--颠倒二进制位
java·算法·leetcode
boyedu2 小时前
比特币区块链共识算法:数字世界的信任密码
算法·区块链·共识算法·数字货币·加密货币·虚拟货币
pk_xz1234562 小时前
社区资源媒体管理系统设计与实现
网络·python·深度学习·算法·数据挖掘·媒体
2 小时前
LeetCode Hot 100 括号生成
算法·leetcode·职场和发展
逝雪Yuki2 小时前
Leetcode——42. 接雨水
c++·算法·leetcode·双指针·接雨水
香蕉可乐荷包蛋2 小时前
排序算法 (Sorting Algorithms)-JS示例
javascript·算法·排序算法