DataFrame上手时的疑问

今天刚上手DataFrame包,使用df=DataFrame(),用df[:var1]=[x for x in 1:10]进行填充,返回的警告信息是Warning:`setindex(df::DataFrame,v::AbstractVector,col_ind::ColumnIndex)` is deprecated,use `begin df[!,col_ind]=v df end` instead.
同样的在访问时 df[:var1]
警告:setindex(df::DataFrame,col_ind::ColumnIndex) is deprecated,use df[!,col_ind] instead.
有哪位大佬解释一下为什么要有这么古怪的语法,我太难了
ps:julia版本1.0.4,pkg版本1.0

df 可以看成是一个类似于矩阵的东东,但是只用 :var1 来索引不能体现取了一列,然后用 ! 而不是 : 的原因在于前者不会复制,而后者会复制(这与 Julia 自带矩阵的索引行为相一致)。