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 {    // 这个例子会编译成功}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 地中海风格装修效果图 平房客厅装修效果图 孕婴店装修效果图 小户型厨房装修效果图 联排别墅装修效果图 80平方的房子装修图 90平方房屋设计图 小平米装修效果图 新房子装修效果图 室内简单装修效果图大全 儿童卧室装修效果图小户型 小户型装修效果图大全2015图片 楼中楼装修效果图小户型 三室两厅装修效果图现代简约 现代装修风格效果图客厅 简约客厅装修实景图大全 90平方米简约装修效果图 190平方房子装修效果图 8平米卫生间装修效果图 100平方房屋装修效果图 四室两厅两卫装修效果图 130平米三室两厅装修效果图 八十平米小户型设计效果图 三室一厅一厨一卫装修效果图 七十平米小户型装修效果图 200平方米的房子设计图 75平方两室一厅装修效果图 113平方三室两厅装修效果图2015 85平米两室一厅装修效果图 四十平米小户型装修效果图 三房两厅两卫装修效果图 现代简约客厅装修效果图 3平方米卫生间装修效果图 主人房卫生间装修效果图 110平米三室两厅装修效果图 30平米单身公寓装修效果图 现代简约风格装修效果图 65平米小户型装修效果图大全 家装评选 装修帮登陆 家装帮