我正在学习Swift并注意到有不同的方法来声明变量。
问题:以下3行之间有什么区别,以及何时使用哪一行?
var mySprite: SKSpriteNode?
var mySprite = SKSpriteNode()
var mySprite = SKSpriteNode(imageNamed: String())
同样,以下3行与何时使用哪一行有什么区别?
var myLabel: SKLabelNode?
var myLabel = SKLabelNode()
var myLabel = SKLabelNode(fontNamed: "name")
答案 0 :(得分:3)
var mySprite: SKSpriteNode?
在这种情况下,变量的类型是可选的,这意味着在您创建包含此变量的类的实例时它是nil,这是您类的属性。
var mySprite = SKSpriteNode()
在这里,您在创建包含它的类的实例时初始化您的属性。
var mySprite = SKSpriteNode(imageNamed: String())
与第二名相似。但在使用的初始化方法上有所不同。在里面()。
答案 1 :(得分:1)
在声明变量方面,两种情况下最后两行没有区别。
第一个声明与后两个声明的不同之处在于它声明了SKLabelNode
类型的可选值,其默认值为nil
。
答案 2 :(得分:1)
第一行代码将变量声明为
可选
。 swift中的Optional
变量意味着它可以是nil或者它可以有一个值,并且你总是应该使用“if let”表达式安全地解开它。
第二行和第三行将定义类SKSpriteNode
或SKLabelNode
的新对象,但每个对象具有不同的参数。