Swift教程(1)
基础知识
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语句判断时不需要小括号了