在 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)
安全吗?非常感谢!
如果你像你展示的那样做这件事是安全的,因为 Julia(在第一行代码中看到,所以它会寻找一个结束的).
但是,有问题的代码是:
f() = 1
    + 2
Run Code Online (Sandbox Code Playgroud)
原因是该f() = 1部件是有效且完整的函数定义。因此,您需要确保向 Julia 发出该行不完整的信号。三种最典型的方法是:
+到第一行的末尾:f() = 1 +
    2
Run Code Online (Sandbox Code Playgroud)
(和)作为包装器:f() = (1
    + 2)
Run Code Online (Sandbox Code Playgroud)
begin和end: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)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           49 次  |  
        
|   最近记录:  |