通过 Apple 的“使用 Swift 进行应用程序开发”学习 Swift 编程。我在第 2.3 章中遇到了以下任务的困难:
假设您有一个需要用户登录的应用程序。您可能有一个
User类似于下图所示的结构。但是,除了跟踪特定用户信息之外,您可能还希望有一种方法来了解当前登录的用户是谁。在下面的结构上创建一个currentUser类型属性User,并将其分配给代表您的用户对象。现在您可以通过结构体访问当前用户User。打印出 的属性currentUser。Run Code Online (Sandbox Code Playgroud)struct User { var userName: String var email: String var age: Int }
如果我理解正确,我需要在结构中创建currentUser类型属性?这将导致无限递归,不是吗?因此,我不确定我是否正确。请帮忙澄清一下。UserUser
仔细阅读练习。它要求您创建一个类型属性,该属性与您之前创建的实例属性不同。也就是说,您正在寻找一种方法来询问一般User类型当前登录的用户是谁,而不是询问某些特定用户。(我就到此为止,因为这是一个学习练习,您可能想自己找到完整的解决方案......)
关于递归问题:类型引用该类型的实例,或者类型的实例引用其他实例是完全可以的。例如,您可以创建一个指向 的另一个实例的favoriteTeacher属性。UserUser
你需要注意的是你是否正在创建圆形结构(例如,如果我说我最喜欢的老师是@nate-cook,Nate 说他最喜欢的老师是@matt,而 Matt 说他最喜欢的老师是我) ,以及您正在编写的算法是否可以安全地处理循环结构,而不会陷入无限递归或无限循环。(如果您打算通过跟踪favoriteTeacher属性来找到所有最喜欢的老师,直到找到一个nil,那么您会遇到麻烦。)
| 归档时间: |
|
| 查看次数: |
353 次 |
| 最近记录: |