ZetCode

Julia 函数教程

最后修改时间:2025年3月3日

Julia 中的函数是执行特定任务的可重用代码块。它们有助于组织代码、提高可读性并减少冗余。本教程通过示例介绍 Julia 中函数的入门和高级用法。

函数使用 function 关键字定义,可以接受参数并返回值。Julia 支持命名函数和匿名函数。

基本函数定义

此示例演示了如何在 Julia 中定义一个简单的函数。

main.jl
function greet()
    println("Hello there!")
end

greet 函数在调用时打印“Hello, there!”。

带参数的函数

此示例展示了如何定义一个接受参数的函数。

main.jl
function add(x, y)
    return x + y
end

add 函数接受两个参数并返回它们的和。

匿名函数

此示例演示了如何定义一个匿名函数。

main.jl
square = x -> x^2

square 函数对其输入进行平方。匿名函数对于简短的一次性操作很有用。

多个返回值

此示例展示了如何从函数返回多个值。

main.jl
function divide(x, y)
    return x / y, x % y
end

divide 函数同时返回商和余数。

默认参数

此示例演示了如何定义带默认参数的函数。

main.jl
function greet(name="Guest")
    println("Hello, $name!")
end

如果未提供参数,greet 函数将打印“Hello, Guest!”。

关键字参数

此示例展示了如何定义带关键字参数的函数。

main.jl
function rectangle_area(; length=1, width=1)
    return length * width
end

rectangle_area 函数使用关键字参数计算矩形的面积。

可变数量的参数

此示例演示了如何定义一个接受可变数量参数的函数。

main.jl
function sum_all(args...)
    return sum(args)
end

sum_all 函数对所有提供的参数求和。

递归函数

此示例展示了如何定义一个递归函数。

main.jl
function factorial(n)
    return n == 0 ? 1 : n * factorial(n - 1)
end

factorial 函数以递归方式计算数字的阶乘。

高阶函数

此示例演示了如何将函数作为参数传递。

main.jl
function apply(func, x)
    return func(x)
end

apply 函数将给定函数应用于参数。

闭包

此示例展示了如何在 Julia 中创建闭包。

main.jl
function make_counter()
    count = 0
    return () -> (count += 1)
end

make_counter 函数返回一个闭包,该闭包在每次调用时递增计数器。

函数最佳实践

来源

Julia 函数文档

在本文中,我们探讨了使用 Julia 函数的各种示例,包括基本定义、高级功能和最佳实践。

作者

我叫 Jan Bodnar,我是一名充满热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出所有 Julia 教程