swift速学-基础部分一
来源:互联网 发布:php软件的背景怎么改 编辑:程序博客网 时间:2024/06/16 04:57
Swift是一种类型安全语言, 包含 C 和 Objective-C 上所有基础数据类型,Int表示整型值; Double 和Float 表示浮点型值; Bool 是布尔型值;String 是文本型数据。 Swift 还提供了三个基本的集合类型,Array ,Set 和Dictionary,除此之外,Swift 还增加了 Objective-C 中没有的高阶数据类型比如元组(Tuple)。元组可以让你创建或者传递一组数据,比如作为函数的返回值时,你可以用一个元组可以返回多个值。并且,Swift 还增加了可选(Optional)类型,用于处理值缺失的情况。可选表示 “那儿有一个值,并且它等于x ” 或者 “那儿没有值” 。可选有点像在 Objective-C 中使用 nil ,但是它可以用在任何类型上,不仅仅是类。可选类型比 Objective-C 中的nil 指针更加安全也更具表现力。
一、常量与变量
常量和变量的意义与C语言相同,即把一个合乎规则的名字和一个指定类型的值关联起来。同样,常量的值一旦设定就不能改变,而变量的值可以随意更改。
二、声明常量和变量
常量和变量必须在使用前声明,用 let 来声明常量,用 var 来声明变量。需要注意的是,如果你的代码中存在不需要改变的值时,请用 let 关键字将它声明为常量,以便后期维护。
三、类型标注
当你声明常量或者变量的时候可以加上类型标注(type annotation),说明常量或者变量中要存储的值的类型。如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。如:
var valuename: String声明中的冒号代表着“是...类型”,所以这行代码可以被理解为:
“声明一个类型为 String ,名字为 valuename的变量。”
注:一般来说你很少需要写类型标注。如果你在声明常量或者变量的时候赋了一个初始值,Swift可以推断出这个常量或者变量的类型
四、常量和变量的命名
你可以用任何你喜欢的字符作为常量和变量名,包括 Unicode 字符,
常量与变量名不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。一旦你将常量或者变量声明为确定的类型,你就不能使用相同的名字再次进行声明,或者改变其存储的值的类型。同时,你也不能将常量与变量进行互转。
注:如果你需要使用与Swift保留关键字相同的名称作为常量或者变量名,你可以使用反引号(`)将关键字包围的方式将其作为名字使用。无论如何,你应当避免使用关键字作为常量或变量名,除非你别无选择。
五、输出语句
你可以用print(_:separator:terminator:)函数来输出当前常量或变量的值,print(_:separator:terminator:) 是一个用来输出一个或多个值到适当输出区的全局函数。如果你用 Xcode,print(_:separator:terminator:) 将会输出内容到“console”面板上。separator 和terminator 参数具有默认值,因此你调用这个函数的时候可以忽略它们。默认情况下,该函数通过添加换行符来结束当前行。如果不想换行,可以传递一个空字符串给terminator 参数--例如,print(someValue, terminator:"") 。
Swift 用字符串插值(string interpolation)的方式把常量名或者变量名当做占位符加入到长字符串中,Swift 会用当前常量或变量的值替换这些占位符。将常量或变量名放入圆括号中,并在开括号前使用反斜杠将其转义:
var vlauename = “hello”print(" \(friendlyWelcome) world")// 输出 "hello world
六、注释
Swift 中的注释与 C 语言的注释非常相似。单行注释以双正斜杠(//)作为起始标记,你也可以进行多行注释,其起始标记为单个正斜杠后跟随一个星号(/*),终止标记为一个星号后跟随单个正斜杠(*/),与 C 语言多行注释不同,Swift 的多行注释可以嵌套在其它的多行注释之中。
七、分号
Swift 并不强制要求你在每条语句的结尾处使用分号(;),当然,你也可以按照你自己的习惯添加分号。有一种情况下必须要用分号,即同一行有多个语句时必须加分号。
八、数值型字面量
整数字面量可以被写作:
如:
- 一个十进制数,没有前缀
- 一个二进制数,前缀是0b
- 一个八进制数,前缀是0o
- 一个十六进制数,前缀是0x
let decInteger = 17let binInteger = 0b10001 // 二进制的17let octInteger = 0o21 // 八进制的17let hexInteger = 0x11 // 十六进制的17浮点字面量可以是十进制(没有前缀)或者是十六进制(前缀是 0x )。小数点两边必须有至少一个十进制数字(或者是十六进制的数字)。十进制浮点数也可以有一个可选的指数(exponent),通过大写或者小写的e 来指定;十六进制浮点数必须有一个指数,通过大写或者小写的 p 来指定。
如果一个十进制数的指数为 exp,那这个数相当于基数和10^exp的乘积:
- 1.25e2 表示 1.25 × 10^2,等于 125.0。
- 1.25e-2 表示 1.25 × 10^-2,等于 0.0125。
如果一个十六进制数的指数为exp,那这个数相当于基数和2^exp的乘积:
数值类字面量可以包括额外的格式来增强可读性。整数和浮点数都可以添加额外的零并且包含下划线,并不会影响字面量:
- 0xFp2 表示 15 × 2^2,等于 60.0。
- 0xFp-2 表示 15 × 2^-2,等于 3.75。
let paddedDouble = 000123.456let oneMillion = 1_000_000let justOverOneMillion = 1_000_000.000_000_1
九、类型别名类型别名(type aliases)就是给现有类型定义另一个名字。你可以使用typealias关键字来定义类型别名。
当你想要给现有类型起一个更有意义的名字时,类型别名非常有用。如:
typealias AudioSample = UInt16var maxAmplitudeFound = AudioSample.min// maxAmplitudeFound 现在是 0
十、布尔值Swift 有一个基本的布尔(Boolean)类型,叫做Bool。布尔值指逻辑上的值,因为它们只能是真或者假。Swift 有两个布尔常量,true 和false,如果你在需要使用 Bool 类型的地方使用了非布尔值,Swift 的类型安全机制会报错。
如:
let i = 1if i { // 这个例子不会通过编译,会报错}---------------------------------------------------let i = 1if i == 1 { // 这个例子会编译成功}
- swift速学-基础部分一
- Swift 基础部分(一)
- Swift学习笔记一(基础部分)
- 一 Swift学习之基础部分
- swift学习 一 基础部分 (上)
- Swift基础学习笔记(一)之基础部分
- swift 基础部分
- swift笔记-基础部分
- Swift - 基础部分
- swift基础部分
- 1.Swift基础部分
- Swift基础部分
- Swift 3.0 基础部分
- iOS学习笔记41-Swift(一)基础部分
- Swift学习 --- 2.1基础部分
- Swift-01基础部分
- Swift教程 第一章 基础部分
- Swift学习:2.1 基础部分
- BaseActivity封装固定控件
- Influxdb的cli中查询结果time列格式显示设置
- 有限状态机FSM详解及其实现
- IntelliJ IDEA 快捷键说明大全(中英对照、带图示详解)
- mybatis-参数处理-11
- swift速学-基础部分一
- qDebug重定向
- $router实现promise效果
- AM335X ADC 模数转换驱动及公式
- Java中的深拷贝(深复制)和浅拷贝(浅复制)
- 三种方式重复执行某个方法
- IntelliJ idea安装Junit遇到的坑
- PopUpWindow使用详解(一)——基本使用
- 微信图文消息中如何使用svg图片