想象一下,你有一个需要用户登录的应用程序。你可能有一个类似于下面显示的User结构。但是,除了跟踪特定用户信息之外,您可能还想知道当前登录用户的身份。在下面的currentUser
结构上创建一个User
类型属性,并将其分配给代表您的user
对象。现在,您可以通过User结构访问当前用户。打印出currentUser
。
struct User {
var userName: String
var email: String
var age: Int
static var currentUser = User(userName: "Bob", email: "bob@gmail.com", age: 18) //This line was typed by me.
// My answer for the 2nd part.
mutating func logIn(user: User) {
currentUser = user
print("\(userName) has logged in.")
}
}
打印(User.currentUser)
与User
结构相关联的其他属性和操作可能是类型属性或方法的良好候选者。一种可能是登录的方法。返回并创建一个名为logIn(user:)
的类型方法,其中user
的类型为User
。在方法的主体中,将传入的用户分配给currentUser
属性,并使用用户的userName打印出一条说明用户已登录的语句。
在下面,调用logIn(user:)
方法并传入与上面指定给currentUser的实例不同的User
实例。观察控制台中的打印输出。
编辑:想出来了!
struct User {
var userName: String
var email: String
var age: Int
static var currentUser = User(userName: "Bob", email: "bob@gmail.com", age: 18)
static func logIn(user: User) {
currentUser = user
print("\(currentUser.userName) has logged in.")
}
}
print(User.currentUser.userName) //Bob
print(User.currentUser.email) //bob@gmail.com
print(User.currentUser.age) //18
var newUser = User(userName: "Joey", email: "joey@yahoo.com", age: 20)
User.logIn(user: newUser) //Joey has logged in.
print(User.currentUser.userName) //Joey
print(User.currentUser.email) //joey@yahoo.com
print(User.currentUser.age) //20
答案 0 :(得分:0)
struct User {
var userName: String
var email: String
var age: Int
static var currentUser = User(userName: "Arminius", email: "arminius@me.com", age: 36)
//this sets up a 'default' user profile so it isn't blank.
mutating func logIn(userName: String, email: String, age: Int) {
// this function changes the 'default' user and logs in a new user
self.userName = userName
self.email = email
self.age = age
print("\(userName) has logged in successfully.")
}
}
然后您将通过logIn(user:)
调用User.currentUser.logIn()
函数,登录一个新用户。我不知道我们的解决方案有何不同,但是对我来说,创建newUser
然后将其分配给currentUser
似乎更清楚了,但是已经过去两年了,您的解决方案确实为我指明了正确的方向
答案 1 :(得分:-1)
当我运行你的代码时,我得到了以下输出" Bob已登录。"你的程序有效。这是我的代码:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>
<input id="input" type="file" accept="image/*" style=" width: 180px;" #files (change)="save($event)" />
您希望结果到底是什么?