美文网首页IOS
Swift---打印变量地址

Swift---打印变量地址

作者: HPD_黄霹雳 | 来源:发表于2017-08-07 18:07 被阅读71次

在学习Swift3.0时,看到值类型和引用类型的章节时,我们需要看看某个变量的地址。下面贴出打印地址的方法(这边是验证闭包是值类型还是引用类型)。有两种方法:
方法1:

var a = {
    print("hpd")
}
var b = a
func address(o: UnsafeRawPointer) -> String {
    return String.init(format: "%018p", Int(bitPattern: o))
}
print(address(o: &a))
print(address(o: &b))

输出结果:

"0x00007fff596a3158\n"
"0x00007fff596a3158\n"

方法2:

var a = {
    print("hpd")
}
var b = a
withUnsafePointer(to: &a) {print($0)}
withUnsafePointer(to: &b) {print($0)}

输出结果:

"0x00007fff596a3158\n"
"0x00007fff596a3158\n"

验证闭包是引用类型。

其他的比如枚举,结构体等可以用上面方法打印地址。另外的,对于类实例,我们可以通过===判断两个变量是否属于同一个实例。

class Dog{
    var name:String?
    init(name:String) {
        self.name = name
    }
}

var dog1 = Dog(name: "xiaoming")
var dog2 = dog1
dog1 === dog2

输出结果为:

true

相关文章

  • Swift---打印变量地址

    在学习Swift3.0时,看到值类型和引用类型的章节时,我们需要看看某个变量的地址。下面贴出打印地址的方法(这边是...

  • swift 3.0 变量地址打印

    OC 中我们常常会用到地址打印,但是swift有所不同。swift是种类型安全的语言。有些东西做了安全处理,App...

  • Swift打印变量内存地址

  • 那些曾经翻车的面试题

    下面代码会输出什么? 通过打印的地址得知, 在Block内部和外部变量a的地址不一样, Block内部对变量a进行...

  • Python语法介绍

    下载地址 https://www.python.org/ 变量不需写类型 但是可以打印变量类型 布尔值可以当做整数...

  • Swift :获取变量地址,自定义description,获取对

    说明 获取变量地址 使用对象自动支持description的方法 获取对象的所有属性名 获取对象的所有变量名 打印...

  • c基础——你好数据类型

    基本数据类型 打印如下 基本数据类型所占字节 打印如下 指针 指针是一个变量,其值为另一个变量的地址。即内存位置的...

  • 1.Dart变量定义、类型

    Dart语法 定义变量var/int/double 打印变量name: print('$name'); 打印变量类...

  • 第三章 检查和设置变量

    变量的高级检查和设置 打印变量 1、通过 p 打印变量 (printf的缩写)打印指针结构体: p *temp2、...

  • 枚举

    查看枚举内存布局 正常是看不了的image.png 可以通过打印变量内存地址,用地址去查找内存中存储的是啥。 然后...

本文标题:Swift---打印变量地址

本文链接:https://www.haomeiwen.com/subject/cbualxtx.html