日記
今日の夕ご飯はめちゃくちゃ雑だった
今日書いたコード
var tup = (x: 0, y: 2) func b(_ x: inout Int, _ y: inout Int) { let tmp = x x = y y = tmp } b(&tup.x, &tup.y) // error _ = { var tup = (x: 0, y: 2) func b(_ x: inout Int, _ y: inout Int) { let tmp = x x = y y = tmp } b(&tup.x, &tup.y) // ok }()
感想
なんでローカル変数だとmemory safetyが保たれるのかわからない.誰か教えて…
memory safetyを保てると証明できる場合は,変数に格納された値型の値に対する複数のアクセスを許すということらしい.多分.同じ処理でも渡されるのがグローバル変数だと証明できないのはなぜ?