Swift入门(一)——基本语法

Swift入门(一)——基本语法,第1张

概述最近开始学习swift,把学习的过程和总结整理成一个系列,方便日后回顾总结。 基本语法 基础语法 swift中每一行结束后不需要加分号,多个语句在同一行内需要用分好隔开 //表示注释,或者用/* ……*/ 常量 常量是指定义之后无法修改值的量,比如设置一个最大尝试登陆的次数,它的值一旦被确定,就不应该在程序中被修改。swift中的常量用let表示,定义方法如下: let maxAttemptTim

最近开始学习swift,把学习的过程和总结整理成一个系列,方便日后回顾总结。

基本语法 基础语法

swift中每一行结束后不需要加分号,多个语句在同一行内需要用分好隔开
//表示注释,或者用/* ……*/

常量

常量是指定义之后无法修改值的量,比如设置一个最大尝试登陆的次数,它的值一旦被确定,就不应该在程序中被修改。swift中的常量用let表示,定义方法如下:

let maxAttemptTime = 3 //正确maxAttemptTime = 4 //错误,常量一旦定义不可以改变let maxAttemptTime //错误 

另外要注意的是,常量在定义的时候必须要赋初值,当然也可以不这么做,后面会详细介绍。

变量

和常量类不同的是,变量用var表示,可以随意改变值

var currentAttemptTime = 1 //正确currentAttemptTime = currentAttemptTime + 1 //正确
打印常量和变量

OC中的NSLog方法依然可用,也可以用swift的println()方法。

NSLog("hello world")println("hello world") //以上两句等价,输出结果都是"hello world"//也可以打印变量或者常量var name = "kt"NSLog("name = \(name)")println("name = \(name)")//以上两句等价,输出结果都是"name = kt"

swift也支持print方法,与println不同的是,println在结尾会自动加上换行符,这与java的语法是一致的。

类型 类型推导

习惯了oc、c++或者java的程序猿会觉得没有变量的类型很奇怪,其实swift和PHP与Js类似,都是支持类型推导功能的。

所谓的类型推导,就是说swift会根据变量的实际值,自动推导出变量所属的类型。

swift中的基础类型有Int、Double、String、UInt8、Character、Bool等。就不一一解释了。Swift中所有的类型都是首字母大写的。

var name = "kt" //自动推导为String类型var age = 20 //自动推导为Int类型var pi = 3.1415926 //自动推导为Double类型
宽类型优先

既然swift支持类型推导,那么π的近似值3.1415926,会被推导为什么类型呢?是float还是Double? 答案是Double,因为swift具有宽类型优先的特性,也就是为自动推导为取值范围更宽泛的类型。

类型标注

最开始提到必须要给常量或者变量赋初值,如果不想赋初值,或者不习惯自动类型推导,我们还可以显示的给常量或者变量标注类型,这被称为“类型标注”

var name: String //在变量名后加上冒号和类型名来进行类型标注//经过类型标注后,可以不赋初值var name: String = "kt" //人为标注为String类型var age: Int = 20 //人为标注为Int类型//这种情况下的类型标注有些多此一举
类型安全

swift支持类型推导,这个功能很方便,与此同时,swift也是严谨的,因为它是类型安全的。

所谓的类型安全是指,不支持常量、变量之间的隐式类型类型转换。

var a = 1var b = 1.5var c = a + b //报错

也就是说,不同类型的变量(常量)不可以出现在”+、-、*、/等运算符两侧”。
所谓的常量、变量之间,其实是指字面量之间的隐式类型转换是可以的。比如如下代码:

var pi = 3 + 0.1415926 //这个必须可以啊,否则就乱套了。
类型转换

如果我希望把整数型和浮点型变量相加怎么办呢,可以使用强制类型转换,又称显式类型转换。

var a = 1var b = 1.5var c = a + b //报错var c = Double(a) + b //正确,得到值为2.5的Double型变量cvar c = a + Int(b) //也正确,得到值为2的Int型变量c

需要说明三点:

精度由高向低或者由低向高都可以,不过高精度转向低精度会丢失小数点后的数据。 上述代码不可以改为“var c = float(a) + b”,理由是类型安全 + 宽类型优先。 注意和C语言的语法区别,C语言中的写法为(int)a,swift中的括号应加在变量上。 类型别名

通过typelias关键字可以重新命名类型,类似于C语言中的typedef,不过更简单。

typealias name = String //现在name类型和String类型是完全一样的了。var myname: name = "kt"
附录 查看完整专栏——《Swift轻松入门

【Swift入门(一)——基本语法】
【Swift入门(二)——字符与字符串】
【Swift入门(三)——元组(Tuple)】
【Swift入门(四)——可选类型(Optionals)与断言(Assert)】
【Swift入门(五)——数组(Array)】
【Swift入门(六)——字典(Dictionary)】
【Swift入门(七)——结构体(Struct)】
【Swift入门(八)——功能强大的求余运算符】
【Swift入门(九)——String与Int、Double、Float等数字相互转换】
【Swift入门(十)——循环引用、弱引用和无主引用】
【Swift入门(十一)——类型转换与is、as *** 作】
【Swift入门(十二)——利用Extension添加逆序输出字符串方法】

总结

以上是内存溢出为你收集整理的Swift入门(一)——基本语法全部内容,希望文章能够帮你解决Swift入门(一)——基本语法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1086076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存