您的位置:首页 > 移动开发 > Swift

swift(一)天

2015-10-21 17:35 274 查看
由于公司项目都是用swift写的。。 菜鸟一枚的我开始自学swift

记录一下。。 自己一个人学很没动力。。。  现在脑子是个浆糊。。打算今天先看到这里。。 (以为今天起码了解了一点语法,应该能看懂一点项目了。。  刚刚瞥了一眼。。 这是写iOS的吗?? 我咋一点都看不懂)。。好吧。。 我需要努力努力。

import UIKit

class ViewController:
UIViewController {

    override
func viewDidLoad() {
        super.viewDidLoad()
        
        self.view.backgroundColor =
UIColor.redColor()
        
        var stringValue:String
        
        stringValue = "stringValue"
        
        var stringValue2 =
"string2"
        stringValue2 = "string3"
        
        //1.输出
        print(stringValue, terminator:"")//不会换行
因为terminator将默认参数值
更改了
        print(stringValue2)
        
        //2.默认参数值
        someFunction()
//        someFunction(15, parameter2: "string4")//此处对应的 func someFunction(parameterWithDefault: Int = 10, parameter2: String = "string1") 
        
        //3.忽略外部参数名 (利用一个 _
代替外部参数名)
        someFunction(12,
"aa")
        
        
        //4.无返回值
没有返回值得函数都会被返回 特殊的值  void
是一个空元祖类型
        unReturnFouction("Anna")
        
        //5.多重返回值
        
        var someInts = [Int]()
        print("someInt is of type [Int] with
\(someInts.count)")
        
        someInts.append(3)//向数组中添加数据
        print("[Int] with
\(someInts)")
        
        //创建默认值的数组
        var fourDouble = [Double](count:
3, repeatedValue: 0.0)
        fourDouble.append(14.1)
        print("fourDouble
\(fourDouble)")
        
        //通过两个数组创建一个数组
        var anotherDouble = [Double](count:
3, repeatedValue: 1.0)
        anotherDouble += [16.1]
        print("anotherDouble:
\(anotherDouble)")
        
        //和数组
        var sumDouble = fourDouble + anotherDouble
        sumDouble += [15.1]
        print("sumDouble:
\(sumDouble)")
        
        //数据项的值和索引值
        
        for (index, value)
in sumDouble.enumerate() {
            print("Item
\(String(index +
1)))
\(value)")
        }
        
        sumDouble.insert(19.9, atIndex:
0)
        print("sumDouble:
\(sumDouble)")
        
        //多重返回值
//        let bounds = minAndMax(sumDouble)
//        print("minandMax min:\(bounds?.min)  max:\(bounds?.max)")
        
        let doubleArray = [Double]()
        
        let bounds =
minAndMax(doubleArray)
        print("minandMax min:\(bounds?.min)  max:\(bounds?.max)")
        
        
        //6.输入输出函数
        var tempa =
15
        var tempb =
10
        
        //输入输出函数 
在定义的时候不能被定义成inout   它将不能被var  let
标识
        //在传入
参数时  将在参数前加上& 
表示可以在函数内更改
        swapInts(&tempa, &tempb)
        print("tempa :
\(tempa),  tempb :
\(tempb)")
        
        
        //7.函数类型
        /*
            var mathFunction: (Int, Int) -> Int = addTwoInts 
            
            可以用mathFuction来调用被赋值的函数
        
        */
        
        //8.函数类型作为返回类型  ->
后写一个完整的函数类型
        let currentValue =
3
        let moveNearerToZero =
chooseStep(currentValue >
0)
        print("moveNearToZero :
\(moveNearerToZero)")
        
        //可选绑定 
判断可选类是否包含值 如果包含就赋值给一个林市场量或者变量
      
    }

    //2.默认参数
    //忽略外部参数名 (利用一个 _
代替外部参数名) 因为第一个参数默认忽略其外部参数名
    func someFunction(parameterWithDefault:
Int = 10,
_ parameter2: String =
"string1") {
       
        print(parameterWithDefault, parameter2);
    }
    
    //3.可变参数
    //->Double  返回值为double 
名叫做numbers的[Double]
    
    func arithmeticMean(numbers:Double...)->Double {
        
        var total:Double =
0
        for number1
in numbers {
            total += number1
        }
        return total /
Double(numbers.count)
    }
    
    //4.无返回值函数
    //关于 string的characters
    /*
        string类型是值类型 
创建了新的字符串,进行常量变量复制操作或者在函数、方法中传递,会进行值拷贝
    
        string类型表示特定序列的字符值得集合
    */
    func unReturnFouction(person:
String) {
        print("GoodBye,
\(person)")
        
        //\(person) 
插入字符串面量的每一项都被包裹在以反斜线为前缀的圆括号中
        //您插值字符串中写在括号中的表达式不能包含非转义双引号 (")
和反斜杠 (\),并且不能包含回车或换行符。
        print(person.characters.count)
        
    }
    
    //5.多重返回值函数
    //确定可选类型确实包含值之后,你可以在可选的名字后面加一个感叹号(!)来获取值。这个惊叹号表示“我知道这个可选有值,请使用它。”这被称为可选值的强制解析(forced
unwrapping)
    
    //可选元组返回类型  
如果函数返回的元组类型 可能在整个元祖中含有没有值
就使用可选元组 (Int, Int)?
    
//    func minAndMax(array:[Double]) -> (min: Double, max:Double) {
//        
//        var currentMin = array[0]
//        var currentMax = array[0]
//        
//        for value in array[1..<array.count] {
//            
//            if value < currentMin {
//                currentMin = value
//            }
//            
//            if value > currentMax {
//                currentMax = value
//            }
//        }
//        
//        return (currentMin, currentMax)
//    }
    
    func minAndMax(array:[Double]) -> (min:
Double, max:Double)? {
        
        if array.isEmpty {
            return
nil
        }
        var currentMin = array[0]
        var currentMax = array[0]
        
        for value
in array[1..<array.count] {
            
            if value < currentMin {
                currentMin = value
            }
            
            if value > currentMax {
                currentMax = value
            }
        }
        
        return (currentMin, currentMax)
    }

    
    //6.输入输出参数
    func swapInts(inout a:
Int, inout
_ b: Int) {
        
        let temporaryA = a
        a = b
        b = temporaryA
        
    }
    
    
    //8.返回值是函数的类型
    
    func stepOne(input:
Int) -> Int {
        return input +
1
    }
    func stepTwo(input :
Int) ->Int {
        return input -
1
    }
    
    func chooseStep(backwards:
Bool) -> (Int) ->Int {
        return backwards ?
stepOne : stepTwo
    }
    
    
    override
func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS swift