swift笔记-基础部分
2015-06-11 21:23
656 查看
常量和变量: 常量和变量必须在使用前声明,用let来声明常量,用var来声明变量 多个常量或者多个变量,用逗号隔开: var x = 0.0, y = 0.0, z = 0.0 给变量或指定类型:常量或者变量名后面加上一个冒号和空格,然后加上类型名称。 var welcomeMessage: String 表示: 声明一个类型为String,名字为welcomeMessage的变量,类型为String”的意思是“可以存储任意String类型的值。” 注意: 一般来说你很少需要写类型标注。如果你在声明常量或者变量的时候赋了一个初始值,Swift可以推断出这个常量或者变量的类型,请参考类型安全和类型推断。 在上面的例子中,没有给welcomeMessage赋初始值,所以变量welcomeMessage的类型是通过一个类型标注指定的,而不是通过初始值推断的。 常量的值一旦被确定就不能更改了。 <code> println</code>函数来输出当前常量或变量的值: <pre><code class="lang-swift"><span class="hljs-built_in"> println</span>(<span class="hljs-string">"This is a string"</span>) Swift 用<em>字符串插值(string interpolation)</em>的方式把常量名或者变量名当做占位符加入到长字符串中,Swift 会用当前常量或变量的值替换这些占位符。 将常量或变量名放入圆括号中,并在开括号前使用反斜杠将其转义: </code><pre><code class="lang-swift"><span class="hljs-built_in"> println</span>(<span class="hljs-string">"The current value of friendlyWelcome is <span class="hljs-subst">\(friendlyWelcome)</span>"</span>);//</code><code class="lang-swift"><span class="hljs-comment"> 输出 "The current value of friendlyWelcome is Bonjour!</span></code><code class="lang-swift"> </code><pre><code class="lang-swift"><span class="hljs-comment">// 这是一个注释</span></code>
[code]/* 这是一个, 多行注释 */ Swift 提供了8,16,32和64位的有符号和无符号整数类型。这些整数类型和 C 语言的命名方式很像,比如8位无符号整数类型是。UInt8,32位有符号整数类型是[code]Int32
就像 Swift 的其他类型一样,整数类型采用大写命名法。
[/code]
Double表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。
Float表示32位浮点数。精度要求不高的话可以使用此类型。
类型推断,编译器可以在编译代码的时候自动推断出表达式的类型。原理很简单,只要检查你赋的值即可类型别名(type aliases)就是给现有类型定义另一个名字。你可以使用
typealias关键字来定义类型别名。当你想要给现有类型起一个更有意义的名字时,类型别名非常有用。假设你正在处理特定长度的外部资源的数据:
[code]typealias AudioSample = UInt16
定义了一个类型别名之后,你可以在任何使用原始名的地方使用别名:
[code]var maxAmplitudeFound = AudioSample.min // maxAmplitudeFound 现在是 0
本例中,
AudioSample被定义为
UInt16的一个别名。因为它是别名,
AudioSample.min实际上是
UInt16.min,所以会给
maxAmplitudeFound赋一个初值
0。Swift 有两个布尔常量,
true和
false:如果你在需要使用
Bool类型的地方使用了非布尔值,Swift 的类型安全机制会报错。下面的例子会报告一个编译时错误:
[code]let i = 1 if i { // 这个例子不会通过编译,会报错 }
然而,下面的例子是合法的:
[code]let i = 1 if i == 1 { // 这个例子会编译成功 }
元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。如:
let http404Error = (404, "Not Found")你可以将一个元组的内容分解(decompose)成单独的常量和变量,然后你就可以正常使用它们了:
[code]let (statusCode, statusMessage) = http404Error println("The status code is \(statusCode)") // 输出 "The status code is 404" println("The status message is \(statusMessage)") // 输出 "The status message is Not Found"如果你只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(
_)标记:
[code]let (justTheStatusCode, _) = http404Error println("The status code is \(justTheStatusCode)") // 输出 "The status code is 404"此外,你还可以通过下标来访问元组中的单个元素,下标从零开始:
给元组中的元素命名后,你可以通过名字来获取这些元素的值:println("The status code is \(http404Error.0)") // 输出 "The status code is 404" println("The status message is \(http404Error.1)") // 输出 "The status message is Not Found"你可以在定义元组的时候给单个元素命名:
[code][code]let http200Status = (statusCode: 200, description: "OK")
[code]println("The status code is \(http200Status.statusCode)") // 输出 "The status code is 200" println("The status message is \(http200Status.description)") // 输出 "The status message is OK"作为函数返回值时,元组非常有用。一个用来获取网页的函数可能会返回一个
(Int, String)元组来描述是否获取成功。和只能返回一个类型的值比较起来,
一个包含两个不同类型值的元组可以让函数的返回信息更有用。请参考函数参数与返回值。
注意:
元组在临时组织值的时候很有用,但是并不适合创建复杂的数据结构。如果你的数据结构并不是临时使用,请使用类或者结构体而不是元组。请参考类和结构体。
可选类型(optionals)来处理值可能缺失的情况。可选类型表示:有值,等于 x 或者 没有值来看一个例子。Swift 的
String类型有一个叫做
toInt的方法,作用是将一个
String值转换成一个
Int值。然而,
并不是所有的字符串都可以转换成一个整数。字符串
"123"可以被转换成数字
123,但是字符串
"hello, world"不行。
下面的例子使用
toInt方法来尝试将一个
String转换成
Int:
[code]let possibleNumber = "123" let convertedNumber = possibleNumber.toInt() // convertedNumber 被推测为类型 "Int?", 或者类型 "optional Int"因为
toInt方法可能会失败,所以它返回一个可选类型(optional)
Int,而不是一个
Int。一个可选的
Int被写作
Int?而不是
Int。
问号暗示包含的值是可选类型,也就是说可能包含
Int值也可能不包含值。(不能包含其他任何值比如
Bool值或者
String值。只能是
Int或者什么都没有。)[/code] [/code]
相关文章推荐
- Swift中的willSet与didSet
- Swift学习笔记十二
- swift简介
- Swift入门基础语法
- OpenStack对象存储——Swift
- [swift 1 ]The Swift Programming Language-欢迎使用Swift-Swift 初见
- swift 用GCD写的倒计时 防止计时器不准
- 基于Hadoop和Openstack云存储的研究(HDFS和Swift对比)
- Swift学习笔记十一
- 【Swift初见】Swift词典
- Swift 学习日记2
- xcode来引用swift版本的protocolbuf
- 我的Swift日记
- iOS-swift-如何实现崩溃树级别文件夹和扩大
- 【swift系列之UIButton】简单使用
- swift与OC的区别(持续更新)
- Swift UITableView使用自定义cell
- Grand Central Dispatch Tutorial for Swift: Part 2/2
- iOS 下拉刷新和加载更多 (OC\Swift)
- 业界资讯:ActionSwift3