一、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. SSH配置log4j的方法

    SSH使用log4j的方便之处 1. 动态的改变记录级别和策略,即修改log4j.properties,不需要重启Web应用,这需要在web.xml中设置一下.2. 把log文件定在 /WEB-INF ...

  2. [Unity菜鸟] Unity鼠标双击,鼠标函数整理(未完)

    1. 鼠标双击 void OnGUI() { Event Mouse = Event.current; if (Mouse.isMouse && Mouse.type == Event ...

  3. 编码识别工具:hash-identifier

    hash-identifier的使用: 当不知道编码是什么类型的时候,可以通过kali系统中的hash工具判别,如下图所示, 在HASH后面输入要判别的编码内容,在后面的Possible Hashs中 ...

  4. linux命令之-pstree使用说明

    pstree  shows running processes as a tree. The tree is rooted at either pid or init if pid is omitte ...

  5. centos下apache+mysql+php安装及配置

    今天难得休闲,自从加盟当前公司以来好像就基本没有写过博客了.难得闲下来和前同事聊天,他们几个人合伙买了VPS在用.这对我们搞WEB开发的童鞋来说是非常重要的,我来这家公司有许久了,但是竟然到现在连一台 ...

  6. ORA-14452: 试图创建, 更改或删除正在使用的临时表中的索引

    ORA-14452: 试图创建, 更改或删除正在使用的临时表中的索引       因为表KOL_XX_FIN050_TEMP 为临时表,而且有其他session正在使用. 处理步骤: 1.先从 dba ...

  7. Android开发之MediaPlayer和SurfaceView组成视频播放器

    SurfaceView 使用双缓冲技术 是个重量级的组件 只要不可见,就不会创建,可见时,才会创建 只要不可见,就会销毁 SurfaceView一旦不可见,就会被销毁,一旦可见,就会被创建,销毁时停止 ...

  8. Android开发之多线程下载、断点续传、进度条和文本显示

    代码实现了在Android环境下的多线程下载.断点续传.进度条显示和文本显示百分数: import java.io.BufferedReader; import java.io.File; impor ...

  9. struts2关于package 的 namespace

    namespace决定了action的访问路径,默认为"",可以接收所有路径的actionnamespace可以写为/ ,或者/xxx,或者/xxx/yyy,对应的action访问 ...

  10. Oracle数据库安装后,登录Database Control时密码错误

    解决方案1(实测可行): sys 和 system用户的用户名和密码还记得不?试试看如果不行,用sqlplus 在服务器本地登录%sqlplus / as sysdbaSQL>alter use ...