swift基本知识点的源码

来源:互联网 发布:淘宝家具沙发 编辑:程序博客网 时间:2024/05/01 15:32

基础的练习代码如下:

//        print("hello world");//        let explictFloat : Float = 4;//        print(explictFloat)//        let label = "My age is ";//        let age = 18;//        let labelAge = label + String(age);//        print(labelAge);//        let apples = 3;//        let oranges = 5;//        let appleSummary = "I have \(apples) apples\n";//        print(appleSummary);//        let fruitSummary = "I have \(apples + oranges) pieces of fruit";//         print(fruitSummary);//        let abc = 38.8;//        let label = "My number is \(abc)";//        print(label);//        var shoppingList = ["apple","orange","banana","milk"];   //数组//        print(shoppingList[1]);//        var peopleSex = ["Jack" : "I'm a boy","Lisa" : "I'm a girl"];  //字典//        print(peopleSex["Jack"]);//        let individualScores = [75,43,103,87,12];    //if else 进行判断//        var teamScore = 0;//        for score in individualScores {//        //            if score > 50 {//                teamScore += 3;//            } else {//                teamScore += 1;//            }//        //        }//        //        print(teamScore);//        var optionalName: String? = "Jack";        //用问号来标记某个变量的值是可选的//        optionalName = nil;//        var greeting = "Hello!";//        if let name = optionalName {//        greeting = greeting + String(name);//            print(greeting);//            //        }else{//            greeting = greeting + String(optionalName);//+ "Lisa";//            print(greeting);//        }//        let vegetable = "red pepper";               //switch 的使用//        //        switch vegetable {//        case "celery"://            let vegetableComment = "Hi I'm will go home";//            print(vegetableComment);//            case "cucumber","watercress"://            let vegetableComment = "I'm lisa,come here";//            print(vegetableComment);//        case let x where x.hasSuffix("pepper")://            let vegetableComment = "Is it a spicy \(x)?";//            print(vegetableComment);//        default://            let vegetableComment = "EveryThing is taste good in a soup";//            print(vegetableComment);//        }//   //        let interestingNumbers = [                     //for-in  实现字典的遍历//            "Prime" : [2, 3, 5, 7, 11, 13],//            "Fibonacci" : [1, 1, 2, 3, 5, 8],//            "Square" : [1, 4, 9, 16, 25],//        ]//        //        var largest = 0;//        //        for (kind, numbers) in interestingNumbers {//        //            for number in numbers {//                if number > largest {//                    largest = number;//                }//            }//            print(largest);////            print(kind,largest);//        }//        //        var n = 2;        //while实现循环//        while n < 100 {//            n = n*2;//        }//        //        print(n);//        //        var m = 2;         //repeat-while 实现循环//        //        repeat {//            m = m*2;//        }while m < 100//        //        print(m);//        //使用 for 循环//        var firstForLoop = 0;//        //        for var i = 0;i < 3;++i {//        //            firstForLoop += i;//        }//        //        print(firstForLoop);//        //函数和闭包//        func greet(name: String, day: String) ->String{//        //            return "Hello \(name), Today is \(day).";//        }//        //        print(greet("Jack", day: "Tuesday"));//        func getGasPrice() ->(Double,Double,Double){     //使用一个元组来返回多个值。//        //            return (3.59, 3.69, 3.79);//        }//        //        //        print(getGasPrice());//        //函数的参数是可变的,用一个数组来获取它们//        //        func sumOf(numbers: Int...) ->Int{//        //            var sum = 0;//            for number in numbers {//            //                sum += number;//            }//            print(sum);//            return sum;//        }//        ////        sumOf();//        sumOf(42, 597, 12);        class nameShape {            var numberOfsides: Int = 0;            var name: String;            init(name: String){                self.name = name;            }            func simpleDescription() ->String{            return "A shape with \(numberOfsides) sides.";            }        }        class Square:nameShape{            var sideLength: Double;            init(sideLength: Double, name: String){                self.sideLength = sideLength;                super.init(name: name);                numberOfsides = 4;            }            func area() ->Double {                return sideLength * sideLength;            }            override func simpleDescription() -> String {                return "A square with sides of length \(sideLength)";            }        }//        let test = Square(sideLength: 5.5, name: "Lili");//        //        let area = test.area();//        print(area);//        //        let description = test.simpleDescription();//        print(description);//        class Circle:nameShape {    //圆的类定义//            var radius: Double;//            init(radius: Double,name: String){//                self.radius = radius;//                super.init(name: name);//            }//            //            func area() ->Double{//                //                return M_PI * radius * radius;//                //            }//            //            override func simpleDescription() -> String {//                //                return "A Cicle with radius of  \(radius)";//            }//        }//        //        let test = Circle(radius: 4.8, name: "myCircle");//        //        print(test.name);//        //        let area = test.area();//        print(area);//        //        let description = test.simpleDescription();//        print(description);//        //            class EquilateralTriangle: nameShape{            var sideLength: Double = 0.0;            init(sideLength: Double,name: String){                self.sideLength = sideLength;                super.init(name: name);                numberOfsides = 3;            }            func area() -> Double {                return sideLength * sideLength;            }            var perimeter: Double{     //属性可以有 getter 和 setter 。                get {                    return 3.0 * sideLength;                }                set {                    sideLength = newValue/3.0;    //在 perimeter 的 setter 中,新值的名字是 newValue。你可以在 set 之后显示的设置一个名 字。                }            }            override func simpleDescription() -> String {                return "An equilateral triangle with sides of length \(sideLength)";            }        }//        let triangle = EquilateralTriangle(sideLength: 5, name: "my Triangle");//        //        print(triangle.perimeter);//        //        triangle.perimeter = 9.9;//        //        print(triangle.sideLength);//        //        let description = triangle.simpleDescription();//        //        print(description);        //如果你不需要计算属性但是需要在设置一个新值之前运行一些代码,使用willSet和didSet。 比如,下面的类确保三角形的边长总是和正方形的边长相同。        class TriangleAndSquare {            var triangle: EquilateralTriangle {                willSet {                    square.sideLength = newValue.sideLength;                }            }            var square: Square {                willSet {                    triangle.sideLength = newValue.sideLength;                }            }            init(size: Double, name: String){                square = Square(sideLength: size, name: name);                triangle = EquilateralTriangle(sideLength: size, name: name);            }        }        let triangleAndSquare = TriangleAndSquare(size: 10, name: "another test shape");        print(triangleAndSquare.square.sideLength);        print(triangleAndSquare.triangle.sideLength);        triangleAndSquare.square = Square(sideLength: 50, name: "larger Square");        print(triangleAndSquare.triangle.sideLength);
0 0