贡献者: addis
!
,但不能在首字母。也可以在任何位置包含 unicode
f(x, y) = x + y;
(assignment form)
!
表示函数参数会被改变。例如 v = [3,2,1]; sort(v)
返回排好的数组,但 v
不改变。sort!(v)
直接改变 v
。
1 + 2 + 3 + ...
相当于 +(1, 2, 3, + ...)
Expression | Calls |
[A B C ...] | hcat
|
[A; B; C; ...] | vcat
|
[A B; C D; ...] | hvcat
|
A' | adjoint
|
A[i] | getindex
|
A[i] = x | setindex!
|
A.n | getproperty
|
A.n = x | setproperty!
|
[1,2,3]'
返回的是 LinearAlgebra.Adjoint{Int64, Vector{Int64}}
,Julia 真心牛逼。
@which sin(pi)
可以返回调用的 sin
的定义(具体到行)。
function g(x,y)::变量类型
可以限制返回的变量类型。
fun(a,b,x...)
可以定义任意变量个数的函数。在函数体内 x
是一个 tuple,包括后面的所有变量。
return 表达式
用于返回一个值。如果不使用,那就返回最后一个表达式的值,如果最后一个表达式没有值(如 println()
),那就返回 nothing
(类型为 Nothing
)。
fun(a, b=2; c=3, d) = a + b + c - d;
中,b
的默认值是 2
,含有默认值的普通变量必须放在所有普通变量的最后。;
后面是命名变量,每一个都可以有或没有默认值。调用时命名变量需要制定名字,例如 fun(1, d=4)
。
f = x -> x^2 +1
,类型是 var"#1#2"
,是 Function
的子类。
sort
和 sort!
map(函数, 数组)
对数组中每个元素使用函数。