用法:
@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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。