Julia 中的函数是一个对象,它接受一组参数并将其映射到返回值。一个函数可以是纯数学的,也可以改变程序中另一个对象的状态。
使用 Julia 的函数,我们可以编写更大的计算,但只需很少的代码行,因为函数支持一些全面的符号。在 Julia 中创建和使用函数非常简单。
定义函数
根据需要,Julia 中的函数可以是多种类型。下面列出了其中一些类型:
- 具有单一表达式的函数
- 具有多个表达式的函数
- 不带参数的函数
- 具有可变参数等的函数。
定义一个函数就像调用一个函数一样简单,只需编写预定义的关键字function
并提供一个 function_name。一个函数可以用一个单独的表达式来分配,也可以用多个表达式或没有表达式。不需要为某些函数提供表达式来执行操作。对于前数学加法运算符(+):它可以只用参数调用,该函数将作为这些参数的加法返回输出。
Note: Just like looping statements, a function also needs an end statement to mark the closing of the function.
例子:
# Defining a function
function fn()
println("this is a function")
end
# Function call
fn()
输出:
this is a function
带参数的函数
也可以通过传递参数元组来创建带参数的函数。定义这样的函数也如上,但稍作修改。此外,函数可以指定一些其他名称,或者我们可以说函数从一个名称复制到另一个名称。
# Defining a function with arguments
function add_fn(x, y)
println(x + y)
end
# Assigning another name to function
another_add = add_fn
# Calling defined function
add_fn(7, 8)
# Calling function by new name
another_add(6, 7)
输出:
15
13
定义函数的简写
也可以使用“=” (赋值运算符)定义单行函数。使用这种符号很有用,因为它可以节省时间和源代码行数。
# Defining a shorthand function
add_fn(x, y) = println(x + y)
# Function call
add_fn(7, 8)
输出:
15
在函数使用 Return
有时我们希望我们的函数返回一些可以进一步用于某些计算的值。为了从函数返回值,使用return关键字。这将从函数被调用,其中返回的计算值按在函数中定义的指令,该声明。 return语句也可以使用return语句后只是写整个操作计算函数的操作。通过不编写要计算的语句然后返回计算值,这将导致更少的代码行。
# Defining a function
function add_fn(x, y)
# Defining return statement
return x + y
end
# Function call
z = add_fn(1, 9)
println(z)
输出:
10
上面的代码将 ‘x’ 和 ‘y’ 的值作为参数,然后在添加 ‘x’ 和 ‘y’ 后返回它们,并将返回的结果存储在调用函数的另一个变量 ‘z’ 中。
Note:
Whenever something is returned the function is exited. So the statement after the return statement will not work.
例子:
# Defining a function
function fn(x, y)
# Return statement
return x * y
println("This is not executed")
end
# Function call
out = fn(7, 7)
println(out)
输出:
49
和上面的代码一样,输出只是返回的内容,不执行返回后的语句。
跳过返回语句
如果我们只使用一个语句 inside out函数,则不需要使用return
关键字。这是因为 Julia 会自动返回函数最后处理的语句的输出。
# Defining function
function f(x, y)
x * x
end
function g()
println("printed data is returned")
end
# Function call
out1 = f(5, 5)
out2 = g()
println(out1)
println(out2)
输出:
25
printed data is returned
使用运算符作为函数
在 Julia 中,运算符也可以用作函数。 +、-、* 等运算符是函数。由于运算符可以为职能的工作,我们可以别名(给别称)给运算符。
Note: When assigning an operator to a variable, the statement line needs to be ended with a ;(semicolon). Otherwise an Error will be generated.
例子:
# Performing addition operation directly
a = 50 + 20 + 1
println(a)
# '+' working as function
b = +(50, 20, 1)
println(b)
# aliasing operator as function
f = +;
println(f(50, 20, 1))
输出:
71
71
71
匿名函数
有时不需要考虑函数的名称。 Julia 也允许创建没有名称的函数。现在,出现了一个问题,如何调用这些函数或如何将参数传递给这些函数。 Julia 提供了一个关键字“ ans
” ,它自动引用最后计算出的值。此关键字可用于将参数传递给匿名函数。
例子:
# Creating an anonymous function
function (x)
x^2 + 2x - 1
end
# Passing argument to function
ans(5)
输出: