2017-02-28 105 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())