小编Rah*_*hul的帖子

函数对Python列表的作用范围是多少?

我无法弄清楚这里发生了什么.附加range函数的引用就是在索引处创建递归列表3.

>>> x = range(3)
[0, 1, 2]
>>> x.append(x)
[0, 1, 2, [...]]
>>> x[3][3][3][3][0] = 5
[5, 1, 2, [...]]
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试这个:

 >>> x = range(3)
 [0, 1, 2]
 >>> x.append(range(3))
 [0, 1, 2, [0, 1, 2]]
Run Code Online (Sandbox Code Playgroud)

我可以很容易地推断出第二种情况的原因,但是无法理解range函数的附加引用对附加的列表做了什么.

python python-2.7

5
推荐指数
1
解决办法
159
查看次数

参考类型内部值类型

我正在探索Swift值类型特别是结构,以便更好地理解它在不同场景中的用途.我很惊讶地看到如何使用枚举来构建二进制搜索树,使用indirect它可以引入一层薄薄的引用语义.

enum BinarySearchTree<T: Comparable> {
  case empty
  case leaf(T)
  indirect case node(BinarySearchTree, T, BinarySearchTree)
}
Run Code Online (Sandbox Code Playgroud)

现在提出真正的问题,我正在努力寻找的是,在值类型中引用类型会发生什么.这段关系将如何运作?像内存管理,对象生命周期.

例如

class B {
    var data: Int = 0

    deinit {
        print("deallocated!")
    }

}

struct A {
    var b = B()
}
Run Code Online (Sandbox Code Playgroud)

在上述情况下,值类型包含对引用类型的引用.

  1. 何时deinit会被召唤?
  2. 每个类型的新结构实例是否都会A引用同一个类实例,B或者它们是不同的.
  3. 我需要注意什么,或者是代码味道?
  4. 还要别的吗?

memory-management value-type reference-type swift deinit

4
推荐指数
1
解决办法
1250
查看次数

在Objective-C中输入defde NSDictionary的合法方法是什么?

我试图在Swift中使用Objective-C API,我必须将Swift Dictionary强制转换为NSSDictionary,但是如果我能以某种方式声明下面编写的NSDictionary,我可以浏览多余的类型转换.

typedef NSDictionary* NSDictionary<NSString *, id> *;
Run Code Online (Sandbox Code Playgroud)

在我的Objective-C API中有几个字典,我希望它们都转换成上面的typdef.

objective-c foundation ios swift

3
推荐指数
1
解决办法
1921
查看次数