2017-02-28 100 views
-1

这是我的代码:为什么递增值显示我“()”?

var pictureVersion = snapshotValuesOnline?["PictureVersion"] as! String 
print("downloaded: \(pictureVersion)") 

var pictureVersionInt = Int(pictureVersion)! 
print("toInt : \(pictureVersionInt)") 

var pictureInt = pictureVersionInt += 1 
print("plusOne : \(pictureInt)") 

var pictureIntToString = "\(pictureInt)" 
print("toString : \(pictureIntToString)") 

这是我的输出:

downloaded: 3 
toInt : 3 
plusOne :() 
toString :() 

我在做什么错在这里?

+0

'pictureInt'是'Void',因为'+ ='是一个'inout'函数修改'pictureVersionInt'。 – JAL

+3

为什么你使用'+ ='?为什么不简单'让pictureInt = pictureVersionInt + 1'? –

回答

1

+=被定义为一个函数,就像这样:

func +=(lhs: inout Int, hrs: Int) { lhs = lhs + hrs } 

此功能不返回任何东西,所以它相当于返回Void(定义为空的元组,()),也叫做什么。

你会得到相同的行为:

func f() {} // Type `(Void) -> Void` 
print(f())