swift笔记-基础部分

常量和变量:
  常量和变量必须在使用前声明,用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>

/* 这是一个,
多行注释 */

Swift 提供了8,16,32和64位的有符号和无符号整数类型。这些整数类型和 C 语言的命名方式很像,比如8位无符号整数类型是UInt8,32位有符号整数类型是Int32。
就像 Swift 的其他类型一样,整数类型采用大写命名法。

Double表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。
Float
表示32位浮点数。精度要求不高的话可以使用此类型。
 类型推断,编译器可以在编译代码的时候自动推断出表达式的类型。原理很简单,只要检查你赋的值即可 

 

类型别名(type aliases)就是给现有类型定义另一个名字。你可以使用 typealias关键字来定义类型别名。

当你想要给现有类型起一个更有意义的名字时,类型别名非常有用。假设你正在处理特定长度的外部资源的数据:

typealias AudioSample = UInt16

定义了一个类型别名之后,你可以在任何使用原始名的地方使用别名:

var maxAmplitudeFound = AudioSample.min
// maxAmplitudeFound 现在是 0

本例中,AudioSample被定义为UInt16的一个别名。因为它是别名,AudioSample.min实际上是UInt16.min,所以会给maxAmplitudeFound赋一个初值0


Swift 有两个布尔常量, truefalse

如果你在需要使用Bool类型的地方使用了非布尔值,Swift 的类型安全机制会报错。下面的例子会报告一个编译时错误:

let i = 1
if i {
    // 这个例子不会通过编译,会报错
}

然而,下面的例子是合法的:

let i = 1
if i == 1 {
    // 这个例子会编译成功
}
元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。
如: let http404Error = (404, "Not Found")

你可以将一个元组的内容分解(decompose)成单独的常量和变量,然后你就可以正常使用它们了:

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"

如果你只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)标记:

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"

你可以在定义元组的时候给单个元素命名:

let http200Status = (statusCode: 200, description: "OK")

给元组中的元素命名后,你可以通过名字来获取这些元素的值:

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

let possibleNumber = "123"
let convertedNumber = possibleNumber.toInt()
// convertedNumber 被推测为类型 "Int?", 或者类型 "optional Int"

因为toInt方法可能会失败,所以它返回一个可选类型(optional)Int,而不是一个Int。一个可选的Int被写作Int?而不是Int

问号暗示包含的值是可选类型,也就是说可能包含Int值也可能不包含值。(不能包含其他任何值比如Bool值或者String值。只能是Int或者什么都没有。)




 







 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值