ぜのぜ

しりとりしようぜのぜのぜのぜ

86日目

日記

今日の夕ご飯はめちゃくちゃ雑だった

今日書いたコード

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を保てると証明できる場合は,変数に格納された値型の値に対する複数のアクセスを許すということらしい.多分.同じ処理でも渡されるのがグローバル変数だと証明できないのはなぜ?