Swift基础语法介绍

http://codecloud.net/swift-2-1181.html

1.常量和变量在使用前都需要声明,在Swift中使用let关键词来声明一个常量,var关键词声明一个变量。如下面例子

let maximumNumberOfLoginAttempts = 10
var currentLoginAttempt = 0

以上代码可以理解为:

声明一个叫maximumNumberOfLoginAttempts的值为10的常量。然后声明一个变量currentLoginAttempt初始值为0。

在这个例子中,最大的登录尝试次数10是不变的,因此声明为常量。而已经登录的尝试次数是可变的,因此定义为变量。

2.Swift使用println来输出变量或者常量:

println(friendlyWelcome)
// prints “Bonjour!”

println是一个全局函数,用来输出一个值,最后输出一个换行。在Xcode中,println输出在控制台中。print函数也类似,只不过最后不会输出换行。

3、和其它一些编程语言不同,Swift不需要使用分号 ; 来分隔每一个语句。当然你也可以选择使用分号,或者你想在一行中书写多个语句。

let cat = ""; println(cat)
// prints ""

4.Int类型

一般来说,编程人员在写代码时不需要选择整数的位数,Swift提供了一种额外的整数类型Int,是和当前机器环境的字长相同的整数位数

在32位机器上,Int和Int32一样大小
在64位机器上,Int和Int64一样大小
除非你确实需要使用特定字长的正数,尽量使用Int类型。这保证了代码的可移植性。即使在32位的平台上,Int也可以存储-2,147,483,648 到2,147,483,647范围内的值,这对大部分正数来讲已经足够了。

UInt类型

Swift还提供了一种无符号类型UInt,同理也是和当前机器环境的字长相等。

在32位机器上,UInt和UInt32一样大小
在64位机器上,UInt和UInt64一样大小

5.整数转换

可以存储在一个整数常量或变量的范围根据每个数值类型是不同的。一个Int8常量或变量可以存储范围-128到127之间的数,而一个UInt8常量或变量可以存储0到255之间的数字。错

let cannotBeNegative: UInt8 = -1
// UInt8 cannot store negative numbers, and so this will report an error
let tooBig: Int8 = Int8.max + 1
// Int8 cannot store a number larger thanits maximum value,
// and so this will also report an error

不同范围的值,你必须在基础数值类型上逐步做转换。这种可以防止隐藏的转换错误,并帮助明确你的代码中类型转换的意图。

要转换一个特定的数字类型到另一个,你需要定义一个所需类型的新变量,并用当前值初始化它。在下面的例子中,常量twoThousand是UInt16类型的,而常量one是UINT8类型的。它们不能被直接相加的,因为类型不同。相反的,该​​示例调用UInt16(one)来创建一个用变量one的值初始化的UInt16类型

let twoThousand: UInt16 = 2_000
let one: UInt8 = 1
let twoThousandAndOne= twoThousand + UInt16(one)

以做加法运算了。输出常量(twoThousandAndOne)被推断为UInt16类型的,因为它是两个UInt16的值的总和。

SomeType(ofInitialValue)是Swift默认的类型转换方式。实现上看,UInt16的有一个接受UINT8值的构造器,这个构造器用于从现有UInt8构造出一个新的UInt16的变量。你不能传入任意类型的参数,它必须是一个类型的UInt16初始化能接受的类型。如何扩展现有类型,规定接受新的类型(包括你自己的类型定义)可以参见 Extensions。

整数和浮点数转换

整数和浮点类型

let three = 3
let pointOneFourOneFiveNine= 0.14159
let pi = Double(three) +pointOneFourOneFiveNine

用来创建Double类型的新变量,从而使表达式两侧是相同的类型。如果没有这个转换,加法操作不会被允许。反之亦然,一个整数类型可以用double或float值进行初始化:

let integerPi= Int(pi)
// integerPi equals 3, and is inferred tobe of type Int

当使用这种方式初始化一个新的整数值的时候,浮点值总是被截断。这意味着,4.75变为4,和-3.9变为-3。

6.
if语句和强制解包

编程人员可以使用if语句来检测一个可选类型是否包含一个特定的值,如果一个可选类型确实包含一个值,在if语句中它将返回true,否则返回false。如果你已经检测确认该值存在,那么可以使用或者输出它,在输出的时候只需要在名称后面加上感叹号(!)即可,意思是告诉编译器:我已经检测好这个值了,可以使用它了。如:

if convertedNumber {
println("(possibleNumber) has an integer value of (convertedNumber!)")
} else {
println("(possibleNumber) could not be converted to an integer")
}
// prints "123 has an integer value of 123"

7.
nil

可以给可选类型指定一个特殊的值nil:

var serverResponseCode: Int? = 404
// serverResponseCode contains an actual Int value of 404
serverResponseCode = nil
// serverResponseCode now contains no value

如果你定义了一个可选类型并且没有给予初始值的时候,会默认设置为nil

var surveyAnswer: String? // surveyAnswer is automatically set to nil

注: Swift 的nil不同于Object-C中的nil. Object-C中,nil是一个指针指向不存在的对象。Swift中,nil不是指针而是一个特定类型的空值。任何类型的可选变量都可以被设为nil,不光是指针。

10: Swift语言教程(五)控制流
http://codecloud.net/swift-6-1193.html
Swift语言教程(六)函数
http://codecloud.net/swift-7-1195.html
Swift语言教程(七)闭包
http://codecloud.net/swift-8-1197.html
Swift语言教程(八) 枚举类型
http://codecloud.net/swift-9-1199.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值