Swift教程(1)

作者: _菩提本无树_ | 来源:发表于2020-07-05 00:12 被阅读0次

    教程目录

    基础知识

    2020.07.04(第一更)

    一.常量和变量

    1.声明常量

        /// 常量
        func letWithVar() {
    
            //定义常量使用let关键字,常量只能被赋值一次
            let letNum = 90;
            //letNum = 80;
            
            //像这种声明常量但暂不指定值的需要指定存储的类型才行,这叫类型注解,下面会有介绍
            let letNumOne : Int8;
            letNumOne = 38;
            //声明多个相同类型的常量,只需要在最后进行类型注解
            let q,w,e : Int8;
            
        }
    
    

    2.声明变量和常量的方式一模一样,区别是变量可以改变值

    二.类型注解

        /// 类型注解
        func typeAnnotation(str: String) {
            
            //当你声明常量或者变量的时候可以加上类型注解(type annotation),说明常量或者变量中要存储的值的类型。
            //如果要添加类型注解,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。
            
            //在声明常量或者变量时如果直接赋值的话不需要进行类型注解,因为编译器会根据赋值的内容自动推断.
            var s: String;
            s = "声明的时候是字符串只能接收字符串类型";
            var str = "str是字符串类型,直接赋值可以不注解";
            
            var num = 12;
            var numTemp: Int8;
            numTemp = 12;
            
            let letNum: Int8;
            letNum = 12;
            
            let letNumTemp = 12;
            
            //方法中有传参数,必须使用注解,比如当前的方法
            
        }
    
    

    三.常量和变量的命名

    一句话别整花里胡哨的,使用英文驼峰命名法.

    四.整数转换

        ///类型转换
        func typeConversion(){
            
            let num8: Int8 = 12;
            let num16: Int16 = 123;
            //let result = num16 + num8;这样会报错因为类型不同不可操作
            //将低类型转为高类型即可
            let result = num16 + Int16(num8);
            
            print(result);
            
        }
    

    float和其他的同理SomeType(ofInitialValue)

    五.类型别名

    类型别名(type aliases)就是给现有类型定义另一个名字。你可以使用 typealias 关键字来定义类型别名。一般不建议这么做.

    //将UInt16重命名
    typealias AudioSample = UInt16;
    let num: AudioSample = 123;
    

    六.布尔值

            //声明布尔值
            var bool : Bool;
            bool = true;
            
            var testBool = true;
    

    七.元组

    元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。

        /// 元组
        func tuples(){
            
            //元组里面可以存储任意的类型
            //定义一个元组
            let tuplesTest = (123,"123123");
            //取元组里面的值使用,需要给元组中的内容命名
            let (status,content) = tuplesTest;
            print(status,content);
                    
            let tuplesTemp = (status,content);
            print(tuplesTemp.0,tuplesTemp.1);//这种不建议,可读性太差
            
            //还有一种方式就是在定义元组的时候给对应的内容命名
            let tuplesTempOne = (statusOne:123,statusTwo:"测试内容");
            print(tuplesTempOne.statusOne,tuplesTempOne.statusTwo);//可读性强
                
            //元组作为返回值
            let (statu,alert,page) = returnTuples();
            print(statu,alert,page);//完美
            
        }
        
        func returnTuples() -> (Int16,String,Int8) {
            
            let httpStatus = (status:Int16(404),alert:"找不到网页",page:Int8(12));
            return httpStatus;
            
        }
    

    挺强大的功能,但是如果数据过于复杂就不建议使用了

    八.可选类型

    可选类型在这里面算是新加的了,OC里面是没有这个的,但看字面意思很难联想到他能做什么,所以仔细研究了一下,其实也很简单,看下面

    可选类型:因为Swift是类型安全的语言,什么意思呢?举个例子,比如说之前使用OC写代码时可能会出现对象是nil的情况,但是编译的时候系统是不会提示我们的,如果我们不对对象进行判断直接使用nil对象结果就是程序容易出现崩溃,因此为了解决这个问题Swift就发明了可选类型,让你在编译的过程把所有可能出现nil的情况全都给你提示让你全部处理掉,你不处理就给你报错,你说是不是很安全了.

    首先说一下nil这个东西,在OC中nil表示空对象大家都知道,但是Swift中nil表示的是值,是一个告诉我们对象缺失的值.

    通过上面的总结大家应该理解了为什么要使用可选类型和nil是什么东西,接下来就说一下可选类型的概念及使用.

    概念:被声明为可选类型的内容要么有具体的值要么没有值返回的是nil,如果没有使用可选类型那么是不能使用nil的.可选类型的标志是?

    待更新

    本文中的总结
    1.swift可以省略分号,但是个人还是不习惯,所以本文未省略
    2.可以使用print(letNum);进行输出内容,比NSLog省事
    3.使用数字值时根据情况使用Int8,Int16,Int32,Float32等.因为他们占用的内存是不一样的.前提是你可以确定值的长度.
    let minValue = UInt8.min // minValue 为 0,是 UInt8 类型
    let maxValue = UInt8.max // maxValue 为 255,是 UInt8 类型
    4.Int长度和机器本身是相同的,32的机器上Int代表的是Int32,64的机器上是Int64
    5.swift中布尔值抛弃了之前YES和NO的形式,更严谨了
    6.swift中对比使用'=='或者'!='字符串也是如此
    7.swift中if语句判断时不需要小括号了

    相关文章

      网友评论

        本文标题:Swift教程(1)

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