一、Swift简介

2010年的夏天,苹果公司的开发人员Chris Lattne接到了一个特别的任务,为OS X 和iOS平台开发下一代的编程语言,也就是Swift。

苹果公司于2014年WWDC(苹果开发者大会)发布的新开发语言Swift,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。
2015年的WWDC开发者大会上,苹果公司推出了Swift2.0版本,并且Swfit完全开源。

自从Swift发布以来,在http://www.tiobe.com中的排行一直处于上升的状态。

二、声明变量和常量

在Swift中使用“let”修饰一个常量,使用“var”修饰一个变量;

let修饰常量的值是不可以更改的;

var修饰的变量的值是可以更改的;

在声明常量和变量的时候可以使用表情符号、中文等命名常量名和变量名。

Swift里不会自动给常量变量赋初始值,也就是说常量变量不会有默认值,所以定义常量的时候一定要给定初始值

Swift定义变量或者常量的时候,需要标识出变量或者常量的类型,如果不标识,会根据初始值自动推断。

因为swift是强类型语言,所以不同类型的变量不能相加,如果想要相加,可以强制类型转换

1、声明常量变量

 // MARK: - 定义常量变量:变量类型的隐式转换

 // 在Swift中如果不给定变量常量的类型,该常量变量的类型就是其初始值的类型
var name = "Jack" // 隐式转换为String类型 var name1 : String = "Rose" // 给定name1的类型为String,不能赋值其他类型 var age : Int = // 整型变量 var age1 : Int? // ?表示age1的类型为可选类型,其值可以为空
print(age1) var gender : Character = "f" // 字符变量,字符用""括起来,""中只能写一个字符 var flag : Bool = true // Bool类型,其值只有true 和 false

2、定义字符串,以及常用到的函数

1. String是有序的字符集合,例如“Hello World”
2. Swift中的字符串通过String类型表示,当然也可以看成Character字符类型的集合

 // MARK: - 字符串
// 1、创建一个空的字符串
var str_empty = ""
var str2_empty = String() // 2、判断字符串是否为空
if str_empty.isEmpty {
print("空")
} else {
print("非空")
} // 3、字符串的拼接
var url : String = "http://"
var str : String = "www.baidu.com"
// 方式1:
//url.appendContentsOf(str)
// 方式2:
var newUrl = url + str
// 方式3:字符串插值 -- \(变量名)
var newURL = "百度网址:\(newUrl)" print(newURL) // 4、获取字符串长度
var str1 : String = "abcdef"
print(str1.characters.count) // 5、字符串的比较
var str2 : String = "MBBoy"
var str3 : String = "GBLW"
if str2 == str3 {
print("\(str2)和\(str3)相等")
} else if str2 > str3 {
print("\(str2)大于\(str3)")
} else {
print("\(str3)大于\(str2)")
}

3、Float 和 Double

 // MARK: - float与double
var num1 = 3.14 // 不指定类型,默认是double类型
// 如果想定义float类型的变量,必须要指定类型
var num2 : Float = 2.14
// 因为swift是强类型语言,所以不同类型的变量不能相加,如果想要相加,可以强制类型转换
//var sum = num1 + num2 // 报错
var sum = num1 + Double(num2) // 不会报错
print("和是\(sum)")

4、小结

  • 常量或者变量的类型必须和你赋给它们的值的类型一样;
  • 声明时类型是可选的,声明的同时赋值的话,编译器会自动推断类型;
  • 如果初始值没有提供足够的信息(或者没有初始值),那你需要在变量后面声明类型,用冒号分割;
  • 使用let来声明常量,使用var来声明变量;
  • 常量只能赋值一次,使用的时候可以直接获取到这个值;
  • 数据只能进行显示类型转换;

三、声明一个数组、字典

在Swift中使用“let”或者“var”声明一个数组或者字典;
数组必须指定数据类型,如果没有指定类型则会根据数组的初值去推断数据类型;
字典所有的key值必须是同一数据类型;
字典所有的value必须是同一数据类型。

1、数组

 // MARK: - 数组
// Swift中数组的元素类型必须相同,如果想存放不同类型的元素,用OC // 定义一个数组
var nameArray = ["yuanyuan", "GBLW", "WYW"]
print(nameArray) // 指定数组元素类型
var ageArray : Array<Int> = [, , ]
print(ageArray) // 定义一个空数组
// 方式1:
var carArray = Array<String>()
// 方式2:
var carArray1 = [Int]()
print(carArray) // 访问数组元素
print(nameArray[]) // 给数组添加元素
carArray.append("bb")
print(carArray) // 使用运算符添加数组元素,可以添加多个
carArray += ["cc", "dd"]
print(carArray) // 插入元素到具体位置
carArray.insert("aa", atIndex: )
print(carArray) // 移除某个元素
carArray.removeAtIndex()
print(carArray) // 移除所有元素
carArray.removeAll()
print(carArray) // 数组排序
print(nameArray)
nameArray.sortInPlace()
print(nameArray)

2、字典

 // MARK: - 字典
// 定义一个字典类型的变量
var dic : Dictionary<String,Int> = ["a" : , "b" : , "c" : ]
print(dic) // 定义空字典
// 方式1
var dic_empty = Dictionary<String, Int>()
// 方式2
var dic_empty2 : Dictionary<String, Int> = [:] // 向字典中添加键值对
dic["d"] =
print(dic) // 修改字典中的值
dic["d"] =
print(dic["d"]) // 删除一个键值对
dic.removeValueForKey("a")
print(dic)

四、元组

元组是Swift里面独有的一种数据格式。
是一个可以返回多个值的数据格式。
在Swift里面声明的时候使用“()”声明。
元组可以通过下标去访问元素,也可以通过key值去访问元素;
整体的数据结构有点类似于C语言里面的结构体。

 // MARK: - 元组

 // 定义一个元组
// 方法1:直接初始化一个元组,使用Swift隐式转换
var tuples = ("水果",["香蕉", "苹果", "西瓜"])
// 方法2:初始化元组的时候给元组指定类型
var tuples1 : (String, Array) = ("动物", ["

Swift 基本语法1的更多相关文章

  1. Swift高级语法学习总结(转)

    Swift高级语法学习总结 1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如果有参数和返回值直接写在两个括号里就可以了 1.2 参 ...

  2. Swift基础语法学习总结(转)

    Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...

  3. Swift高级语法学习总结

    Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如 ...

  4. Swift基础语法学习总结

    Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...

  5. iOS开发——语法篇&swift经典语法总结

    swift经典语法总结 1:函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如果有参数和返回值直接写在两个括号里就可以了 1.2 参数需 ...

  6. swift基本语法

    swift种语法着实怪异,实质干的事情还是一样的,一下将对此语法做简单介绍: 1.swift语法种已经剔除“:”这个结束符号,下面将演示入门操作的hello world import Foundati ...

  7. Swift基础语法

    简介 特点 (1)优于OC,快速,安全 (2)取消了预编译指令包括宏定义(OC用的太多了) (3)取消了OC指针和不安全访问的使用(看不到星星了) (4)舍弃 Objective-C 早期应用 Sma ...

  8. Begin :SWIFT 基本语法

    国内介绍IOS书籍大多是很陈旧的代码, 2014年Apple发布了Swift语言, 毫无疑问Swift是一个强大的语言, 但是纵观国内的IOS现状,大家大多已经习惯了了OC, OC能解决的问题谁会想到 ...

  9. Swift基础语法(三)

    Array数组在swift中Array相当于oc中的NSMutableArray(变长数组) //1.定义数组 var numarr:Int[] = [,,,,]; var strarr:String ...

  10. 【原】iOS学习之Swift之语法2(精简版)

    1.可选类型和强制解包(?和!) 1> 可选类型(?)和强制解包(!) 在swift中,可选类型(?) 其根源是一个 枚举型,里面有 None 和 Some 两种类型.其实所谓的 nil 就是 ...

随机推荐

  1. ENVI Services Engine5.1 应用开发入门教程

    原文地址: ENVI Services Engine5.1 应用开发入门教程_ENVI-IDL中国_新浪博客 http://blog.sina.com.cn/s/blog_764b1e9d0102uy ...

  2. ArcGIS Runtime for Android开发教程V2.0(1)基本概念

    原文地址: ArcGIS Runtime for Android开发教程V2.0(1)基本概念 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csd ...

  3. POJ3278——Catch That Cow(BFS)

    Catch That Cow DescriptionFarmer John has been informed of the location of a fugitive cow and wants ...

  4. Android安全问题 钓鱼程序

    导读:文本介绍一种钓鱼应用,讲述如何骗取用户的用户名和密码,无须root 这个话题是继续android安全问题(二) 程序锁延伸的 之前我已经展示了如何制作程序锁.当打开指定应用的时候,弹出一个密码页 ...

  5. uva 11292 Dragon of Loowater (勇者斗恶龙)

    Problem C: The Dragon of Loowater Once upon a time, in the Kingdom of Loowater, a minor nuisance tur ...

  6. System.Drawing.Design.UITypeEditor自定义控件属性GetEditStyle(ITypeDescriptorContext context),EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.C ...

  7. 【HDOJ】4322 Candy

    状态DP显然可以解,发现T了,不知道优化后能不能过.然后发现费用流可以解.trick是对need拆解成need/K, need%K两种情况讨论. /* 4312 */ #include <ios ...

  8. SQL Server中Delete语句表名不能用别名

    delete from TABLEA A where A.FIELD1=10        (ORACLE适用)delete TABLEA from TABLEA A where A.FIELD1=1 ...

  9. 对同一个项目下的多个数据库Context进行迁移Migrations

    PM> Enable-Migrations -MigrationsDirectory "Migrations\ContextA" -ContextTypeName MyPro ...

  10. UVa 540 (团体队列) Team Queue

    题意: 每个人都属于一个团体,在排队的时候,如果他所在的团体有人在队伍中,则他会站到这个团体的最后.否则站到整个队伍的队尾. 输出每次出队的人的编号. 分析: 容易看出,长队中,在同一个团体的人是排在 ...