swift的特点:
1、swift是一种强类型语言,所有变量在声明或者定义的时候会确定类型,并且这个类型不能再被修改。
2、swift是安全的,强类型是安全性的体现之一。
3、swift所有的变量(可选型除外)都必须经过初始化才能访问使用,
(1)、非可选型变量,必须初始化,在结构体和类中,未初始化的非可选型属性,必须在构造函数中先进行初始化
(2)、可选型
显式声明:
如String,无需初始化,默认值为nil,使用时需要解包返回确切类型数据使用
隐式声明!:
如String!,也无需要初始化,默认值nil,可以解包,也可以不解包直接使用,也就是说,比var t:String! = "TEST",如果有一个变量a是String类型,一个变量b是String类型,那么若a = t,那么可选型t就无需解包,直接返回一个确切的String类型,而b = t,则是返回一个可选型,这种可选型根据实际需要自动处理
Optional方式声明:
需要初始化,这种方式不会自动初始化一个nil值,并且这种方式的也是显示声明
4、swift数据类型分值类型和引用类型:
值类型:一般内存分配在栈中,进行赋值都是深拷贝,会开辟全新的内存空间给新变量,对新变量修改不会影响原变量,结构体(struct)、枚举(enum)等都是值类型,像Int、Double、Float、元组、String、Array、Dictionary、Set等,实质都是struct,所以也是值类型
引用类型:就是指针,一般内存分配在堆中,进行赋值会只拷贝值的内存地址,不会开辟新的内存空间给新变量存储值,对新变量修改会影响原变量,像类、闭包、函数等,都是引用类型
5、_在swift中有特殊的意义,一般使用来,用于占位进行忽略,比如函数参数名忽略,比如10_000(跟10000一样,但是加_后更易读)
6、swift语言,在类的继承上,方法是可重写的,而在类中,方法也是可重载的
7、swift中,可选型的本质是枚举
8、swift是面向协议的语言:
(1)、swift语言是面向对象的,但是swift标准库中,基础类只有几个,而协议类型却有几十个,充分说明了swift语言中协议的重要性
(2)、与OC中的协议不同的是,swift的协议是可多继承和扩展的,并且协议里不仅可以有方法,还可以有属性,这是OC的协议不具备的,在swift中,协议的存在,能更好的去抽象出两个不同事物的共同特性,做到一些类无法做到的是,比如飞机和鸟,明显不同类型,也没有继承关系的两种类型,他们都有翅膀、都会飞行的共同性,最好的选择就是协议了
可以使用sprintf函数将float类型转为字符串(字符数组)。sprintf功能与格式化输出函数printf类似,只不过不是输出到终端,而是输出到第一个参数的字符串中。函数原型为:intsprintf(chardst,constcharformat);声明与stdioh。当用于float转换时,可以写作:sprintf(buf,"%abf",var);的格式,功能为将var转为字符串并存在buf中。其中,a和b均可省略,二者的作用为:1a,整型常数,输出的宽度设置为a的绝对值(|a|)字节,当实际宽度大于|a|时,按照实际宽度输出。不足部分补空格。当a>0时,有效数字右侧对齐,否则左侧对齐。当不设置a时,结果按照实际宽度输出。2b,设置小数的位数,当实际有效小数位数不足b位时,以0补足b位;超过b位时,四舍五入到b位。当b不设置时,默认输出6位小数。
这是一件事情的两个说法,函数类型作函数参数,就是把函数作为参数传进去,既可以传匿名函数,也可以传别的函数。
闭包特指匿名函数中,可以访问外侧函数的变量。
这段代码没有特殊含义,只是为了演示下这种语法。
函数类型作函数参数的作用一般是回调,用来传入自定义的代码,或者事件处理。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)