Swift -- swift 函数代码
// **************** 函数 *******************
func greet(name:String, day:String) -> String{
return "Hello \(name), today is \(day)."
}
greet("Bob", day:"Tuesday")
// 使用元祖来让一个函数返回多个值
func calculateStatistics(scores:[Int]) -> (min:Int, max:Int, sum:Int){
var min = scores[0]
var max = scores[1]
var sum = 0
for score in scores{
if score > max{
max = score
}
if score < min{
min = score
}
sum += score
}
return (min, max, sum)
}
let statistics = calculateStatistics([5, 3, 100, 3, 9]);
println(statistics.sum)
println(statistics.2)
// 带有可变个数参数的函数
func sumOf(numbers:Int...) -> Int{
var sum = 0
for number in numbers{
sum += number
}
return sum
}
sumOf()
sumOf(42, 597, 12)
func returnFifteen() -> Int{
var y = 10
func add(){
y += 5
}
add()
return y
}
returnFifteen()
func makeIncrementer() -> (Int -> Int){
func addOne(number:Int) -> Int{
return 1 + number
}
return addOne
}
var increment = makeIncrement()
increment(7)
*****************************
func vari<N>(members:N...){
for i in members{
println(i)
}
}
vari(4, 3, 5)
vari(4.5, 3.1, 5.6)
vari("Google", "Baidu", "Runoob")
******************************
func makeIncrementor(forIncrement amount:Int) -> () -> Int{
var runningTotal = 0
func incrementor() -> Int{
runningTotal += amount
return runningTotal
}
return incrementor
}
let incrementByTen = makeIncrementor(forIncrement:10)
print(incrementByTen())
print(incrementByTen())
print(incrementByTen())
********************************
enum Student{
case Name(String)
case Mark(Int, Int, Int)
}
var studDetails = Student.Name("Runoob")
var studMarks = Student.Mark
switch studMarks{
case .Name(let studName):
println("name: \(studName)")
case .Mark(let Mark1, let Mark2, let Mark3):
println("\(Mark1), \(Mark2), \(Mark3)")
}