跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Kotlin函数基础
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{Note|本教程假设读者已掌握Kotlin基本语法,包括变量声明和流程控制}} = Kotlin函数基础 = '''函数'''是Kotlin编程的核心构建块,用于封装可重用的代码逻辑。与Java不同,Kotlin函数具有更简洁的语法和更强大的特性。 == 函数定义语法 == Kotlin使用<code>fun</code>关键字定义函数,基本结构如下: <syntaxhighlight lang="kotlin"> fun functionName(parameters: ParameterType): ReturnType { // 函数体 return result } </syntaxhighlight> === 简单示例 === <syntaxhighlight lang="kotlin"> fun greet(name: String): String { return "Hello, $name!" } fun main() { println(greet("Alice")) // 输出: Hello, Alice! } </syntaxhighlight> == 函数组成部分 == === 1. 参数 === Kotlin支持: * 默认参数 * 命名参数 * 可变数量参数(<code>vararg</code>) <syntaxhighlight lang="kotlin"> fun printDetails(name: String, age: Int = 25, vararg hobbies: String) { println("Name: $name") println("Age: $age") println("Hobbies: ${hobbies.joinToString()}") } // 使用示例 printDetails("Bob", hobbies = "Reading", "Swimming") </syntaxhighlight> === 2. 返回值 === * 显式使用<code>return</code> * 单表达式函数可省略大括号 * 返回<code>Unit</code>类型时可省略返回类型 <syntaxhighlight lang="kotlin"> // 单表达式函数 fun square(x: Int) = x * x // Unit返回类型 fun log(message: String): Unit { println("[LOG] $message") } </syntaxhighlight> == 函数类型 == Kotlin函数分为两类: {| class="wikitable" ! 类型 !! 特点 !! 示例 |- | '''成员函数''' || 定义在类或对象内部 || <code>class User { fun login() }</code> |- | '''顶层函数''' || 直接定义在文件中 || <code>fun processData()</code> |} == 实际应用案例 == === 用户验证系统 === <syntaxhighlight lang="kotlin"> fun validateUser( username: String, password: String, minLength: Int = 8 ): Boolean { if (username.isBlank()) return false if (password.length < minLength) return false if (!password.any { it.isDigit() }) return false return true } fun main() { val isValid = validateUser("user123", "pass1234") println("Validation result: $isValid") // 输出: true } </syntaxhighlight> === 数学计算器 === <syntaxhighlight lang="kotlin"> fun calculate( a: Double, b: Double, operation: (Double, Double) -> Double ): Double { return operation(a, b) } fun main() { val result = calculate(5.0, 3.0) { x, y -> x * y } println("Result: $result") // 输出: 15.0 } </syntaxhighlight> == 高级特性 == === 中缀表示法 === 适用于只有一个参数的成员函数或扩展函数: <syntaxhighlight lang="kotlin"> infix fun Int.times(str: String) = str.repeat(this) fun main() { println(2 times "Bye ") // 输出: Bye Bye } </syntaxhighlight> === 尾递归函数 === 使用<code>tailrec</code>优化递归: <syntaxhighlight lang="kotlin"> tailrec fun factorial(n: Int, acc: Int = 1): Int { return if (n <= 1) acc else factorial(n - 1, n * acc) } fun main() { println(factorial(5)) // 输出: 120 } </syntaxhighlight> == 函数执行流程 == <mermaid> graph TD A[调用函数] --> B[参数传递] B --> C[执行函数体] C --> D{有返回值?} D -->|是| E[返回结果] D -->|否| F[执行完毕] </mermaid> == 性能考虑 == * 内联函数(<code>inline</code>)可减少高阶函数的运行时开销 * 避免在热路径中创建过多临时函数对象 * 尾递归函数会被编译为循环,不会导致栈溢出 == 最佳实践 == # 保持函数单一职责(一个函数只做一件事) # 限制参数数量(通常不超过5个) # 使用有意义的函数名(动词开头) # 复杂逻辑分解为多个小函数 # 优先使用表达式函数体 {{Warning|避免过度使用默认参数,可能导致代码可读性下降}} == 练习建议 == 尝试实现以下函数: * 计算斐波那契数列 * 字符串反转函数 * 温度转换函数(Celsius ↔ Fahrenheit) * 简单的HTTP请求处理函数 通过掌握Kotlin函数基础,您已经为学习更高级的函数式编程概念打下了坚实基础。 [[Category:编程语言]] [[Category:Kotlin]] [[Category:Kotlin函数]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
该页面使用的模板:
模板:Mbox
(
编辑
)
模板:Note
(
编辑
)
模板:Warning
(
编辑
)
模块:Arguments
(
编辑
)
模块:Message box
(
编辑
)
模块:Message box/ambox.css
(
编辑
)
模块:Message box/configuration
(
编辑
)
模块:Yesno
(
编辑
)