swift 類 結構體 作為引數 以及可變引數
阿新 • • 發佈:2019-01-07
- Class
class Person{
var age = 22, name = "frank"
func growolder()
{
self.age++ //++ 要跟住 不要亂打空格
// 如果是var 可以在結構體內部進行修改
}
}
func celebrationBirthday(person:Person)
{
print("生日快樂 (\(person.name))")
person.growolder()
}
let Frank = Person()
celebrationBirthday(Frank)
print (Frank.age)
引數生命為var型別
class Person{
var age = 22, name = "frank"
func growolder()
{
self.age++ //++ 要跟住 不要亂打空格
// 如果是var 可以在結構體內部進行修改
}
}
func celebrationBirthday(var person:Person)
{
print("生日快樂 (\(person.name))")
person.growolder()
}
let Frank = Person()
celebrationBirthday(Frank)
print (Frank.age)
一句話概括 如果是var 可以在結構體內部進行修改
- struct
-
struct Person{
var age = 22, name = "frank"
mutating func growolder()
{
self.age++
}
//結構體裡面的函式 要修改屬性 必須加上關鍵字 mutating
}
// 結構作為引數 傳遞給函式 當做 值傳遞, 相傳地地址 加上inout
func celebrationBirthday(inout person:Person)
{
print("生日快樂 (\(person.name))" )
person.growolder()
}
var Frank = Person()//這個地方注意需要 定義為var
celebrationBirthday(&Frank)
print(Frank.age)
// 1.結構傳遞 是作為值傳遞 ,所以要inout處理 傳遞物件得讓編譯器知道地址
// 2.修改結構的屬性值 把結構宣告為var變數 常量不允許修改內部的屬性值
- 可變引數
// 可變引數
func longestWord(Words : String ...) -> String
{
var currentLongest :String?
for word in Words
{
if(currentLongest?.characters.count < word.characters.count)
{
currentLongest = word
}
}
return currentLongest!
}
let long = longestWord("大象", "貓", "大熊貓", "耗子")
三個點表示可變引數