美文网首页
Swift初探

Swift初探

作者: NeverMore奈文摩尔 | 来源:发表于2016-02-29 20:41 被阅读48次

    Swift简介

    Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。
    Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别。

    操作优点

    Swift 对于初学者来说也很友好。它是第一个既满足工业标准又像脚本语言一样充满表现力和趣味的编程语言。它支持代码预览,这个革命性的特性可以允许程序员在不编译和运行应用程序的前提下运行 Swift 代码并实时查看结果。

    应用优势

    Swift 将现代编程语言的精华和苹果工程师文化的智慧结合了起来。编译器对性能进行了优化,编程语言对开发进行了优化,两者互不干扰,鱼与熊掌兼得。Swift 既可以用于开发“hello, world”这样的小程序,也可以用于开发一套完整的操作系统。所有的这些特性让 Swift 对于开发者和苹果来说都是一项值得的投资。

    下面开始对Swift进行初步学习

    首先,打开Xcode,依照下图创建工程

    ![Uploading 屏幕快照 2016-02-29 下午7.44.37_381010.png . . .] 屏幕快照 2016-02-29 下午7.44.37.png

    创建完成 开始代码

    定义变量

    //let 定义常量 不能改
    //Swift支持隐式类型推断 可根据初值 自动推断数据类型
    let a = 10
    let b : String = "卡卡西"
    let c = 20.1
    //Swift 不支持隐式类型转换 不能让两个不一样的数据类型做四则元算
    //let d = a + c (不支持)
    //swift强转的格式:数据类型(需要强转的数据)
    let d = Double(a) + c
    let 赤道的 = "宁次"
    let 😢 = "😢"
    
    let str1 = "abc"
    let str2 = "cde"
    let str3 = str1 + str2
    
    
    //swift里使用var定义变量
    var a = 10
    a = 100
    //定义一个初值nil的变量
    var b : String? = nil
    

    数组

    //数组里的数据类型必须是一样的
    let array = [1, 2, 3]
    //第二种方式 先指定数据类型
    let array1 : [Int] = [1, 2, 5]
    //定义一个空数组
    let array2 : [Int] = []
    

    数组的增删改查

    var array = [1, 2, 3, 4, 5]
    
    //查
    print(array[0])
    //增
    array.insert(100, atIndex: 3)
       //增加一个数组
    let array1 = [99, 98]
    array.insertContentsOf(array1, at: 2)
    
    //删
     //删除全部
    //array.removeAll(keepCapacity: true)
     //删除第一个
    //array.removeFirst()
    //删除指定的下标的元素
    //array.removeAtIndex(2)
    //删除前几个
    //array.removeFirst(2)
    //删除最后一个
    //array.removeLast()
    //指定范围删除
    let range : Range = Range(start: 2, end: 3)
    array.removeRange(range)
    print(array)
    
    //改
    array[1] = 99
    print(array)
    
    //拼接
    var array2 = [55, 66, 77, 88]
    var array3 = array + array2
    

    字典

    let dictionary = [1 : 2, 3 : 4]
    let dic1 : [Int : String] = [1 : "a", 2 : "b"]
    

    字典的增删改查

    var dictionary = [1 : 2, 3 : 4, 5 : 6]
    
    //增
    dictionary[9] = 8
    print(dictionary)
    //删
    dictionary.removeValueForKey(9)
    print(dictionary)
    //改
    dictionary[1] = 111
    print(dictionary)
    //查
    print(dictionary)
    

    元祖

    Swift里使用() 表示定义一个元祖 元祖里面没有数据类型的概念
    定义一个元祖

    let type = ("影魔","paker")
    

    访问元祖元素有两种方式:
    1.第一种访问方式:

    print(type.0)
    

    2.第二种访问方式:

    let type2 : (name : String, nickName : String) = type
    print(type2.name)
    

    小结:

    1.常量或者变量的类型必须和你 赋给它的值得类型一致
    2.声明时的类型是可选的,声明的同时赋值的话,编译器会自动推断类型
    3.如果初始值没有提供足够的信息(或者没有初始值),那你需要在变量后面声明类型,用冒号分割
    4.使用let来声明常量,使用var来声明变量
    5.常量只能赋值一次,使用的时候可以直接获取到这个值
    6.数据只能进行显示类型转换


    循环结构

    下面介绍下Swift里面的循环结构:
    1.第一种类似OC里面的for循环:

    let array = [1, 2, 3, 4, 5]
    for var i = 0; i < array.count; i++ {
    print("i = \(i)")
    }
    

    2.这种类似OC中的while循环:

    var i = 0
    while i < 10 {
    i++
        print(i)
    }
    

    3.这种类似OC中的do...while循环:

    repeat
    var i = 0
    repeat{
    i++
    print(i)
    }while i < 10
    

    4.for...in 循环:

    for var a in array {
    print(a)
    }
    

    分支结构

    1.if...else分支:

    var timer : String? = nil
    if (timer != nil){
    print("cunzai")
    }else{
    print("bucunzai")
    }
    

    2.switch结构:

    let value = 100
    switch value{
    case 0:
        print(value)
    case 1:
        print(value)
    default:
        print(value)
    }
    
    switch value{
    case 0:
        print(value)
    case 1:
       print(value)
    default:
        print("chaole")
    }
    
    let point = (10, 10)
    switch point{
    case (10, 10):
        print(point)
    case (_,10):
        print(point.0)
    case (10, _):
        print(point.1)
    case (_, _):
        print(point)
    }
    
    let value = 0
    let value1 = 100
    switch value{
    case 0 where value < 10:
        print(value)
    case 0 where value1 > 10:
        print("正确")
    default:
       print("cuowu")
    }
    

    函数

    大家知道函数分为以下几种:
    //无参无返回值
    //无参有单个返回值
    //无参有多个返回值
    //有参无返回值
    //有参有单个返回值
    //有参有多个返回值
    //嵌套函数
    Swift里增加了一个:
    //inout函数

    下面为大家做详细的介绍定义和使用:

    无参无返回值函数
    func (关键字) test (函数名) "()"(参数列表) -> Void(返回值类型)
    func test() -> Void {
        print("我是第一个函数")
    }
    test()
    
    无参有单个返回值
    func test1() -> String {
    
    return "我是第二个函数,无参有返回值"
    }
         //接收函数的返回值
    let str = test1()
    print(str)
    
    
    func test2() -> Array<Int> {
    return [1, 2, 3]
    }
        //返回以个OC数组
    func test3() -> NSArray {
          return [1, 2, "a", "b"]
    }
    
    有参无返回值的函数
    //参数格式  参数名 + ":" + 参数类型
    // -> Void 可以省略
    func test4 (name : String, sex : String) -> Void {
       print("我叫\(name),我的性别是\(sex)")
    }
    
    test4("HK", sex: "nan")
    
    //参数是一个数组格式 : 参数名 + ":" + array<数据类型>
    func test5 (number : Array<Int>) {
      
    }
    
    
    无参有多个返回值
    func  test7() -> (String,String) {
     return ("鸣人","18")
    }
    let type = test7()
    print(type)
    print(type.1)
    
    有参有返回值的函数
    func  test6(name : String, age : String) -> (String,String) {
        return (name, age)
    }
    
    let type1 = test6("鸣人", age: "18")
    print("我叫\(type1.0),今年\(type1.1)岁")
    
    inout函数
    inout 函数
    //Swift函数里面的参数 默认是使用let修饰的,是不可以更改的
    func test8 (inout number : Int){
     number = 100
    }
    var a = 5
    test8(&a)
    print(a)
    
    
    func test9(inout name: String,inout name2: String){
    
        let temp = name
        name = name2
        name2 = temp
    }
    
    var name = "张三"
    var name2 = "李四"
    test9(&name, name2: &name2)
    print(name, name2)
    
    嵌套函数
    func test10(){
        func test11(){
            func test12(){
                func test13(){
                    func test14(){
                       func test15(){
                        //...可以无限定义下去
                            
                        }
                    }
                }
            }
        }
    }
    

    以上就是对Swift语言的初步学习,也只是皮毛,要想学好Swift需要认真研究😊😊😊

    相关文章

      网友评论

          本文标题:Swift初探

          本文链接:https://www.haomeiwen.com/subject/yxmgkttx.html