Julia函数的基本语法:
julia> function f(x,y)
x + y
end
f (generic function with 1 method)
第二种方法,简单的方法:
julia> f(x,y) = x + y
f (generic function with 1 method)
julia> f(2,3)
5
julia> g = f;
julia> g(2,3)
5
julia> ∑(x,y) = x + y #∑输入方法:\sum + tab
∑ (generic function with 1 method)
julia> ∑(2, 3)
5
julia> function g(x,y)
return x * y #加入return关键字,只返回这一条结果
x + y
end
g (generic function with 1 method)
julia> g(2,3)
6
julia> function g(x,y)
x * y #如果没有return,就返回最后一条结果。
x + y
end
g (generic function with 1 method)
julia> g(2,3)
5
julia> function hypot(x,y)
x = abs(x)
y = abs(y)
if x > y
r = y/x
return x*sqrt(1+r*r)
end
if y == 0
return zero(x)
end
r = x/y
return y*sqrt(1+r*r)
end
hypot (generic function with 1 method)
julia> hypot(3, 4)
5.0
julia> function g(x, y)::Int8 #设置类型,一但类型不能满足,就会报错。
return x * y
end;
julia> typeof(g(1, 2))
Int8
julia> function g(x, y)::Int8
return x * y
end;
julia> g(2.0,3) #2.0应该是Float64,但是没有报错
6
julia> g(2.1,3) #2.1是Float64,结果报错了。
ERROR: InexactError: Int8(6.300000000000001)
Stacktrace:
[1] Int8 at .\float.jl:689 [inlined]
[2] convert at .\number.jl:7 [inlined]
[3] g(::Float64, ::Int64) at .\none:3
[4] top-level scope at none:0
function printx(x)
println("x = $x")
return nothing #加入这一句,就不返回任何值了。
end
julia> 1 + 2 + 3
6
julia> +(1,2,3) # Julia中,+ - * / 都是函数。
6
julia> f = +;
julia> f(1,2,3)
6