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 的其他类型一样,整数类型采用大写命名法。 UInt8Int32

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)成单独的常量和变量,然后你就可以正常使用它们了:

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

此外,你还可以通过下标来访问元组中的单个元素,下标从零开始:

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

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

作为函数返回值时,元组非常有用。一个用来获取网页的函数可能会返回一个元组来描述是否获取成功。和只能返回一个类型的值比较起来,

一个包含两个不同类型值的元组可以让函数的返回信息更有用。请参考函数参数与返回值

注意:
元组在临时组织值的时候很有用,但是并不适合创建复杂的数据结构。如果你的数据结构并不是临时使用,请使用类或者结构体而不是元组。请参考类和结构体

可选类型(optionals)来处理值可能缺失的情况。可选类型表示:

值,等于 x 或者 没有值

来看一个例子。Swift 的类型有一个叫做的方法,作用是将一个值转换成一个值。然而,

并不是所有的字符串都可以转换成一个整数。字符串可以被转换成数字,但是字符串不行。

下面的例子使用方法来尝试将一个转换成:

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

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

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)StringtoIntStringInt"123"123"hello,world"toIntStringIntlet possibleNumber = "123" let convertednumber = possibleNumber.toInt() // convertednumber 被推测为类型 "Int?", 或者类型 "optional Int"toIntIntIntIntInt?IntIntBoolStringInt

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...