用法:
@view A[inds...]
将索引表达式 A[inds...]
转换为等效的
调用。view
这只能直接应用于单个索引表达式,并且对于包含特殊 begin
或 end
索引语法(如 A[begin, 2:end-1]
)的表达式特别有用(因为普通
函数不支持这些语法)。view
请注意,@view
不能用作常规分配的目标(例如,@view(A[1, 2:end]) = ...
),un-decorated indexed assignment(A[1, 2:end] = ...
)或广播索引分配(A[1, 2:end] .= ...
)也不会复制。但是,它对于像 @view(A[1, 2:end]) .+= 1
这样的 updating
广播分配很有用,因为这是 @view(A[1, 2:end]) .= @view(A[1, 2:end]) + 1
的简单语法,并且 right-hand 端的索引表达式否则会在没有 @view
的情况下进行复制。
另请参阅
以切换整个代码块以使用视图进行非标量索引。@views
Julia 1.5
在索引表达式中使用begin
来引用第一个索引至少需要 Julia 1.5。
例子
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> b = @view A[:, 1]
2-element view(::Matrix{Int64}, :, 1) with eltype Int64:
1
3
julia> fill!(b, 0)
2-element view(::Matrix{Int64}, :, 1) with eltype Int64:
0
0
julia> A
2×2 Matrix{Int64}:
0 2
0 4
相关用法
- Julia @views用法及代码示例
- Julia @v_str用法及代码示例
- Julia @cfunction用法及代码示例
- Julia @isdefined用法及代码示例
- Julia @boundscheck用法及代码示例
- Julia @b_str用法及代码示例
- Julia @show用法及代码示例
- Julia @r_str用法及代码示例
- Julia @locals用法及代码示例
- Julia @raw_str用法及代码示例
- Julia @coalesce用法及代码示例
- Julia @assert用法及代码示例
- Julia @ccall用法及代码示例
- Julia @task用法及代码示例
- Julia @something用法及代码示例
- Julia @deprecate用法及代码示例
- Julia splice!用法及代码示例
- Julia LibGit2.count用法及代码示例
- Julia LinearAlgebra.BLAS.dot用法及代码示例
- Julia break用法及代码示例
- Julia sizeof()用法及代码示例
- Julia :<=用法及代码示例
- Julia zero()用法及代码示例
- Julia rem用法及代码示例
- Julia ...用法及代码示例
注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.@view — Macro。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。