8:08 AM
Subscripts Much of this discussion also applies to subscripts, though in the language today subscripts are never technically stored. Accessing a component of a value type through a subscript is treated as accessing the entire value, and so is considered to overlap any other access to the value. The most important consequence of this is that two different array elements cannot be simultaneously accessed. This will interfere with certain common idioms for working with arrays, although some cases (like concurrently modifying different slices of an array) are already quite problematic in Swift. We believe that we can mitigate the majority of the impact here with targeted improvements to the collection APIs.
8:09 AM
↑このセクション自体にはUnsafePointerを使えば良いとは書いてないですが
8:11 AM
大丈夫だとわかっているから排他則とか無視したい場合には究極的にはUnsafePointerを使えばいいよ ただしなるべく保護の元でいろいろできるようにしていきたいね みたいな話が書いてあります
8:11 AM
一般的な話として。
8:12 AM
あーあとは、 Rust のsubscriptなら要素がメモリごとにわけて配置されて相互に干渉しないけどSwiftのArrayはcomputed propertyでしかないのでそういう保証はやりようがない、 みたいな話が合わせて書いてあるので
8:13 AM
逆説的に、メモリごとへの直接的なアクセスがコントロールできるならそういう事もできる、と理解しました。(これによらずとも、C/C++で一般的な事)
8:14 AM
あ、もちろん、UnsafePointerの同一アドレスへのアクセスは排他が必要ですよ。
8:16 AM
ウーンそういう意味ではどこに書いてあるというよりCプログラミング的な基礎知識という感じもしてきました。