如何在 Julia 中正确地进行换行?

CRq*_*tum 3 julia

在 fortran 中,我们可以简单地使用 & 来进行换行。

但我想知道,在 Julia 中,是否有一种安全的方法来进行行延续?

我听说有时 Julia 无法识别行连续性并且会导致错误?因为之后,Julia 似乎没有任何符号来进行续行。Julia 能否正确识别换行符?

就像我用长参数定义下面的函数一样,

function mean_covar_init(kmix::Int64,dim_p::Int64,weight::Array{Float64,1},sigma::Array{Float64,2},mu::Array{Float64,2})
return nothing
end
Run Code Online (Sandbox Code Playgroud)

如果我做这样的事情

function mean_covar_init(kmix::Int64
,dim_p::Int64
,weight::Array{Float64,1}
,sigma::Array{Float64,2}
,mu::Array{Float64,2})
return nothing
end
Run Code Online (Sandbox Code Playgroud)

安全吗?非常感谢!

Bog*_*ski 5

如果你像你展示的那样做这件事是安全的,因为 Julia(在第一行代码中看到,所以它会寻找一个结束的).

但是,有问题的代码是:

f() = 1
    + 2
Run Code Online (Sandbox Code Playgroud)

原因是该f() = 1部件是有效且完整的函数定义。因此,您需要确保向 Julia 发出该行不完整的信号。三种最典型的方法是:

  1. 移动+到第一行的末尾:
f() = 1 +
    2
Run Code Online (Sandbox Code Playgroud)
  1. 使用()作为包装器:
f() = (1
    + 2)
Run Code Online (Sandbox Code Playgroud)
  1. 使用beginend
f() = begin 1
    + 2 end
Run Code Online (Sandbox Code Playgroud)

让我再举一个宏的例子,它不需要括号或标点符号,因此通常很棘手。因此有以下几点:

@assert isodd(4) "What even are numbers?"
Run Code Online (Sandbox Code Playgroud)

如果改写为

@assert isodd(4)
    "What even are numbers?"
Run Code Online (Sandbox Code Playgroud)

不会产生您期望的结果,您需要执行以下操作,例如:

@assert(isodd(4),
    "What even are numbers?")
Run Code Online (Sandbox Code Playgroud)