• Swift 基础部分(建议掌握OC字符串知识的翻阅)


    更新说明: 


            Swift 目前已经发布到4.0版本了,以前写的这整个Swift学习系列的文章,有很多的不足之处,我会重新整理整个系列文章,也是相当于重新复习一遍Swift,后面系列文章的改动之处全都会做记号标注,希望能有不一样的收获,也希望能给也在学Swift的你一点点的帮助!

                                2017年9月1日 


           

             公司项目现在暂时还是在使用Object-C在写,Swift虽然面世不是很久,但Swift是苹果更推荐使用的开发语言,估计也是未来开发的趋势,自己以前有接触Swift,但又由于公司的项目赶,也没有时间去好好地学习Swift。现在年底了,项目也进行到一些后期的维护,自己也有时间开充实一下自己了,决定重新开始去学习这款开发语言,也将后面不断地更新自己的学习笔记。

            首先,你懂Object-C的话,Swift最基本的一些概念性的东西就不需要你再去理解了,会为你的学习带来许多的方便!

           第一大点,大家需要知道字符串的本质是一个结构体!这点很重要 ,你清楚这一点,后面的许多东西你理解起来就没有那么难了。

            首先说两小点:

             一: 在Swift中,用 let (注意大小写,Swift的关键字是区分大小写的) 这个关键字来开头定义的是常量!这里的常量和我们平时接触到得常量是相同的,常量就是不可变的变量。

            二: 在Swift 中,用 var 这个关键字开头定义的是变量,这里的变量和我们理解的变量也是一个道理,就是可变的量。

    我们现在说回我们的字符串:

    (一)如下面的情况:

            let zxString="12345667"
            var zxstring="12344455"
            print(zxString)
            print(zxstring)
            
    

    (二)看看这两个变量的定义,自己想一想,它们的相同和不同点!

    再看看下面这个:

            var str2 = String()
            if  str2.isEmpty
            {
                print"STR2是空字符 ")
            }else
            {
                print("STR2不是空字符")
            }
    

           上面也是字符串的一种定义,为什么能这样子写,就和我上面说的大家记住字符串的本质是有关系的,后面大家理解了就知道为什么能这样子定义了,当上面定义的的确是空字符就像我们在写OC时候的 NSString * String =@"";是一个道理!

    (三)字符串,在学OC的时候,无外乎也就是定义和最基本的使用了,上面两点给大家说了怎么定义,下面说使用。

             使用的话,就一句话我感觉。OC怎么用你就怎么用!发挥一下你的想象力,再结合OC的知识,Swift 字符串相关的东西你就掌握了,就踏出了你学Swift的第一步!例如我们看看Swift是怎么判断一个字符是不是空字符:

            var str2 = String()
            if  str2.isEmpty
            {
                print("STR2是空字符")
                
            }else
            {
                print("STR2不是空字符")
            }
    

        代码就这样子,你要理解懂OC的话,你也能看的出来,这里的判断利用了属性 isEmpty ,当然这个属性的返回值也肯定是BOOL类型的。在这里提到BOOL类型了。就顺便给大家说两句BOOL类型。

    附加:Obiect-C BOOL 和Swift BOOL 的区别

    1:OC中BOOL的值是0,1 或者 YES, NO 或者 true , false ;下面定义后,赋下面的值都是没有问题的!

      
        BOOL  a;   
        a=true;
        a=YES;
        a=1;
    

    2:swift中BOOL的值只有两个 true 和 false 两个值!没有表示真假的 0 和 1 或者 YES ,NO !所以在swift 中你用 0 ,1或者 YES ,NO 判断真假是不行的!

    struct Bool 
    {
        /// Default-initialize Boolean value to `false`.
        init()
    }
    

    这是swift项目中官方对BOOL类型的一个解释,大家可以看看!

    说回我们的字符串吧!

    第二大点就是字符串的操作:

    一:字符串的大小写转换,和OC的一样就不在多说了

    二:字符串的拼接:

            这个和以前我们学的OC的不一样,在OC中,我们用的是StringWithFormant这个方法。但在swift中,用的是“+”。。对,你没看错,就是加号,如下面这样子

            let Zstring="zhang"
            var zxs = "xu"
            var Ztring = Zstring + zxs
            print(Ztring)
          
            // 下面是打印的结果
            zhangxu
    

           

            再顺便给大家说一句,print(Ztring) 和 println(Ztring)  的区别是前面的打印完后不会自动换行,后面的会自己换行,没有其他的区别,大家别太多的纠结在这一点上,就怕会有和我一样喜欢钻牛角尖的朋友,我要不明白我会想的,这到底是怎么回事!

            var zxs="xuqwqwqwqeqweqeqwe"
           // let index = advance(zxs.startIndex,2, zxs.endIndex) 这个和下面的是一个道理 let index = advance(zxs.startIndex, 2) var V = zxs.substringFromIndex(index) print(V) // 下面的是打印的结果 qwqwqwqeqweqeqwe

    再给大家看看这一行代码

        var V = zxs.substringFromIndex(<#index: String.Index#>)
    

            在前面我说了var 开头定义的是变量,能改变,就像我们在OC中操作可变字符串一样。大家先看看上买这行代码,在substringFromIndex这个属性里面,需要的参数类型是String.Index这个类型的。上面的  let index = advance(zxs.startIndex, 2) 就是定义  String.Index 类型的变量,理解advance(zxs.startIndex, 2)的字面意思也就知道这个String.Index 在 substringFromIndex 中发挥的作用了。

  • 相关阅读:
    [导入]开源一个的Asp.net公共上传文件程序
    [导入]安装Nginx,最近在研究这个,鄙视用F5的
    [导入]Movable Type 的 Feed Widget 很牛,真的很牛!
    [导入]如果得了ls综合症怎么办?
    [导入]鼓泡泡的电容!
    [导入]如果得了ls综合症怎么办?
    sql语法、函数等等大全
    学习ASP.NET MVC3(3) Razor视图引擎(上)
    学习ASP.NET MVC3(1) 概述
    依赖属性的好处
  • 原文地址:https://www.cnblogs.com/zhangxiaoxu/p/5145287.html
Copyright © 2020-2023  润新知