發表於 程式分享

Swift語法學習筆記

//
//  main.swift
//  HelloSwift
//
//  Created by grace on 2017/5/21.
//  Copyright © 2017年 grace. All rights reserved.
//

import Foundation

func func1()
{
    //1.print
    print("Hello, World!")
    
    //2.calculate
    let a = 25
    var b:Int = 3
    print(a+b)
    b += 1
    print(a+b)
    
    let doubleVal:Double = 111.11
    var varDoubleVal:Double = 22.22
    varDoubleVal += 1.1
    
    let intVal:Int = 22
    var varIntVal:Int = 21
    varIntVal += 2
    
    var sum = 0
    sum = intVal + varIntVal
    print("The sum-1 is " + String(sum))
    print("The sum-2 is \(sum)")
    print("The sum-3 is \(intVal + varIntVal)")


    var sumDouble:Double = 0.0
    sumDouble = doubleVal + varDoubleVal
    print("The sumDouble-1 is " + String(sumDouble))
    print("The sumDouble-2 is \(sumDouble)")
    print("The sumDouble-3 is \(doubleVal + varDoubleVal)")

    //3.Array
    var numbers:Array = [15, 25]
    print("numbers sum is \(numbers[0] + numbers[1])")

    //4.Dictionary
    var numberDic:Dictionary = [
        "grace": 40,
        "kevin": 42
    ]

    print((numberDic["grace"]!))
    print("grace's age is \(numberDic["grace"]!)")
    print("kevin's age is \(numberDic["kevin"])")

    //5.for
    for i in 1...10 {
        print(i)
    }

    var gradesDic = [
        "May" : 99,
        "Bob" : 59,
        "Joe" : 56
    ]

    //6.for and Dictionary
    for grade in gradesDic
    {
        if grade.1 < 60 {             print("\(grade.0)'s grade is \(grade.1)")         }     }     print((gradesDic["May"]!))     print("May's grade is \(gradesDic["May"]!)") } //7.call function with no parameter and no return func1() //8.function with return String func greet()->String {
    return "Hello"
}

var helloString = greet()
print(helloString)

//9.function with 2 input parameters
func greet2(var1:String, var2:String)->String {
    return "Hello,\(var1) and \(var2)"
}

var helloString2 = greet2(var1: "Grace", var2: "Kevin")
print(helloString2)

//10.function with return array
func getGrades()->(grade1:UInt32, grade2:UInt32, grade3:UInt32) {
    return (arc4random() % 100 + 1, arc4random() % 100 + 1, arc4random() % 100 + 1)
}

var returnArray = getGrades()
print("\(returnArray.grade1),\(returnArray.grade2),\(returnArray.grade3)")

//11.function with not quantitative parameters(不定量變數)
func sumOf(numbers:Int...)->Int {
    var sum:Int = 0
    for number in numbers {
        sum += number
    }
    
    return sum
}

print(sumOf(numbers: 1,2,3,4,5))

//12.class
class Shape {
    var name:String
    var slides:Int
    
    init(name:String, slides:Int) {
        self.name = name
        self.slides = slides
    }
    
    func simpleDescription() ->String {
        return "name is \(self.name), slides is \(self.slides)"
    }
}

var shape1:Shape = Shape(name: "shape1", slides: 4)
print(shape1.simpleDescription())

//13.inherit
class Square : Shape {
    var slideLength:Double
    
    init(name:String, sideLength:Double) {
        self.slideLength = sideLength
        super.init(name: name, slides: 4)
    }
    
    func area()->Double {
        return slideLength * slideLength
    }
    
    override func simpleDescription() -> String {
        return "A square of sideLength \(self.slideLength) which name is \(self.name), slides is \(self.slides)"
    }
}

var square1:Square = Square(name: "square1", sideLength: 5.5)
print("\(square1.name)'s area is \(square1.area()), and description is \(square1.simpleDescription()).")