Swift5.2连载

Swift教程(1)

2020-07-05  本文已影响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语句判断时不需要小括号了

上一篇下一篇

猜你喜欢

热点阅读