gpt4 book ai didi

julia - 如何抑制函数返回

转载 作者:行者123 更新时间:2023-12-04 16:11:14 24 4
gpt4 key购买 nike

假设我有一个有多个返回值的函数(如下所示)。但是,此输出没有提供信息,因为用户不知道每个值代表什么,除非他们查找函数定义。所以我想使用 println() 以适当的名称将结果打印到屏幕上,同时抑制实际返回的值被打印在屏幕上。在 R 中,函数 invisible() 可以做到这一点,但你如何在 Julia 中做同样的事情呢?

function trimci(x::Array; tr=0.2, alpha=0.05, nullvalue=0)
se=sqrt(winvar(x,tr=tr))./((1-2.*tr)*sqrt(length(x)))
ci=cell(2)
df=length(x)-2.*floor(tr.*length(x))-1
ci=[tmean(x, tr=tr)-qt(1-alpha./2, df).*se, tmean(x, tr=tr)+qt(1-alpha./2, df).*se]
test=(tmean(x,tr=tr)-nullvalue)./se
sig=2.*(1-pt(abs(test),df))
return ci, tmean(x, tr=tr), test, se, sig
end

最佳答案

除了 Harlan 和 Stefan 所说的之外,让我分享一个来自 ODBC.jl 包 (source here) 的示例。相对于其他语言,我最喜欢 Julia 的一个特性是创建自定义类型非常简单(而且也没有性能问题!)。这是一个自定义类型 Metadata,它只包含几个描述执行查询的数据字段。这不一定需要自己的类型,但它可以更方便地在函数之间传递所有这些数据,并允许通过重载 Base.show() 函数来自定义其输出格式。

type Metadata
querystring::String
cols::Int
rows::Int
colnames::Array{ASCIIString}
coltypes::Array{(String,Int16)}
colsizes::Array{Int}
coldigits::Array{Int16}
colnulls::Array{Int16}
end
function show(io::IO,meta::Metadata)
if meta == null_meta
print(io,"No metadata")
else
println(io,"Resultset metadata for executed query")
println(io,"------------------------------------")
println(io,"Columns: $(meta.cols)")
println(io,"Rows: $(meta.rows)")
println(io,"Column Names: $(meta.colnames)")
println(io,"Column Types: $(meta.coltypes)")
println(io,"Column Sizes: $(meta.colsizes)")
println(io,"Column Digits: $(meta.coldigits)")
println(io,"Column Nullable: $(meta.colnulls)")
print(io,"Query: $(meta.querystring)")
end
end

同样,没有什么花哨的,但说明了定义自定义类型并产生自定义输出是多么容易。

干杯。

关于julia - 如何抑制函数返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16921581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com