Julia 中的函数
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 语句之后编写整个操作即可。通过不编写要计算的语句然后返回计算值,这将导致更少的代码行。
# 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
如上面的代码,输出只是返回的内容,return 之后的语句不执行。
跳过返回语句
如果我们在 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)
输出: