Swift 语法错误和 init()?
Swift Syntax Error and init()?
我学习swift。我有一个关于初始值设定项 init()
.
的问题
比如我要初始化Int.
var number: Int = 20
var number = Int(20)
var number = Int.init(20)
所有表达式都一样吗?
二、为什么会出现这个表达式?
var check = "123"
var phoneNum:Int?
if((phoneNum = Int.init(check)) != nil)
{
print("Success");
}
没有错误!
var check = "123"
var phoneNum:Int? = Int.init(check)
if(phoneNum != nil)
{
print("Success");
}
是的,这些都是一样的效果:
var number: Int = 20
var number = Int(20)
var number = Int.init(20)
这是另一种方法:
var number = 20
这会产生一个错误:
var check = "123"
var phoneNum:Int?
if((phoneNum = Int.init(check)) != nil)
{
print("Success");
}
你得到一个错误(“错误:'()' 类型的值永远不能为 nil,不允许比较”)因为在 Swift returns ()
中赋值,唯一的 Void 类型的值,但是 nil
是 Optional 类型,这与 Void 不同。 Swift 中的赋值通常不能用作表达式。
我想将此添加为对 rob 答案的评论,但由于我没有足够的声誉,这是我的答案吗?评论(双关语;)。
关于最后两个示例,您还可以使用 optional binding 来帮助完成作业:
var check = "123"
var phoneNumber: Int?
if let number = Int.init(check) {
phoneNumber = number
print("Success")
}
print(phoneNumber)
// Success
// Optional(123)
更改 check
值:
var check = "A23"
var phoneNumber: Int?
if let number = Int.init(check) {
phoneNumber = number
print("Success")
}
print(phoneNumber)
// nil
我希望这也能有所帮助。
我学习swift。我有一个关于初始值设定项 init()
.
的问题
比如我要初始化Int.
var number: Int = 20
var number = Int(20)
var number = Int.init(20)
所有表达式都一样吗?
二、为什么会出现这个表达式?
var check = "123"
var phoneNum:Int?
if((phoneNum = Int.init(check)) != nil)
{
print("Success");
}
没有错误!
var check = "123"
var phoneNum:Int? = Int.init(check)
if(phoneNum != nil)
{
print("Success");
}
是的,这些都是一样的效果:
var number: Int = 20 var number = Int(20) var number = Int.init(20)
这是另一种方法:
var number = 20
这会产生一个错误:
var check = "123" var phoneNum:Int? if((phoneNum = Int.init(check)) != nil) { print("Success"); }
你得到一个错误(“错误:'()' 类型的值永远不能为 nil,不允许比较”)因为在 Swift returns
()
中赋值,唯一的 Void 类型的值,但是nil
是 Optional 类型,这与 Void 不同。 Swift 中的赋值通常不能用作表达式。
我想将此添加为对 rob 答案的评论,但由于我没有足够的声誉,这是我的答案吗?评论(双关语;)。
关于最后两个示例,您还可以使用 optional binding 来帮助完成作业:
var check = "123"
var phoneNumber: Int?
if let number = Int.init(check) {
phoneNumber = number
print("Success")
}
print(phoneNumber)
// Success
// Optional(123)
更改 check
值:
var check = "A23"
var phoneNumber: Int?
if let number = Int.init(check) {
phoneNumber = number
print("Success")
}
print(phoneNumber)
// nil
我希望这也能有所帮助。