一、Swift简介

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

○ 苹果公司于2014年WWDC(苹果开发者大会) 发布的新开发语言Swift, 可与Objective-C共同运行于Mac OS和iOS平台, 用于搭建基于苹果平台的应用程序

○ 2015年的WWDC开发者大会上, 苹果公司推出了Swift2.0版本, 并且Swift完全开源

二、基本语法

  

//Swift中导入类库使用import, 不再使用<>或者""了
import Foundation//Swift中的输出语句:print
print("Hello, World!")//MARK: - 定义常量、变量//定义常量 (使用完第一次就不能修改值)
let myGender = "女"
//myGender = "男"//定义变量
var carName = "BMW"
carName = "Audi"
print(carName)//MARK: - 定义常量变量: 变量类型的隐式转换//在swift中如果定义常量变量不给定相关的类型, 它会隐式转换成给定的初值类型
let name = "Jack" //如果这样定义出来一个常量, 它会隐式转换成String类型let name1 : String = "Rose"  //如果给定类型,后边赋值的时候需要根据类型进行赋值let age : Int = 18  //如果定义常量最好给出初始化, 定义变量可以不给初始值var age1 : Int?     //?表示age1的类型
print(age1)//定义一个字符类型的变量
var char : Character = "A"  //赋值字符类型的时候 仅需一个字母即可
//定义一个bool类型的变量 [在swift中bool类型的变量只有true活着false]
var flag : Bool = false//MARK: - 字符串string
//(1)创建一个空的字符串
var str_empty = ""
var str1_empty = String()//(2)判断一个字符串为空字符串
if str_empty.isEmpty {print("str_empty is empty")
}//(3)字符串的拼接
var str_url = "http://"
var str = "www.baidu.com"let str_new_url = str_url + str
print(str_new_url)
print("百度网址:\(str_new_url)\n")  // \(变量名)输出相关的内容[插入式取值]//(4)获取字符串的长度
var str1: String = "dag"
print(str1.characters.count)//(5)字符串的比较
var str2 = "MBBoy"
var str3 = "GBLW"if str2 != str3 { // ==print("两个字符串不相等")
}//MARK: - 数组
//Swift数组中的元素类型必须相同//定义一个数组
var nameArray = ["yuanyuan", "GBLW", "WYW", ]
print(nameArray)var nameArray1 : Array<String> =  ["YaQian", "XQ", "FatZhou"]//定义一个空数组 (字符串)
let array = Array<String>()
print(array)//访问数组中的元素
print(nameArray[1])//向数组中添加元素
var int_array = Array<Int>()
int_array.append(520)
int_array.append(123)
print(int_array)//使用运算符添加数组元素
int_array += [100]
int_array += [120]print(int_array)//使用运算符添加多个数组元素
int_array += [800, 900, 55]
print(int_array)//插入元素到具体的位置
int_array.insert(521, atIndex: 1)
print(int_array)//移除某个元素
int_array.removeAtIndex(4)
print(int_array)//移除所有元素
int_array.removeAll()
print(int_array)//MARK: - 字典//定义一个字典类型的变量
var dic : Dictionary<String, Int> = ["a":18, "b":69, "c":38]
print(dic)//定义空字典
var dic1 : Dictionary<String, Int> = [:]
var dic2 = Dictionary<String, Int>()//往字典里赋值
dic["d"] = 50
print(dic)//修改字典中的内容 (根据键值修改)
dic["a"] = 90
print(dic["a"])//删除字典中的内容 (根据键值去删除)
dic.removeValueForKey("b")
print(dic)//MARK: - 元组
//定义一个元组//方法一:直接初始化一个元素 (使用swift隐式转换的特点)
let tuples = ("蓝鸥1班", ["iOS", "html5", "Android"])
print(tuples)//方法二:显式初始化的方式
let tuplesNew : (String,Array) = ("蓝鸥8班", ["iOS", "html5", "Android"])
print(tuplesNew)//取出元组
//第一种取值方式:直接把元组赋值给另外一个常量, 根据相关标记进行取值
let tuplesNew1 : (classroom:String, course:Array) = tuplesNew
var classInfo = tuplesNew1.classroom + tuplesNew1.course[0] + tuplesNew1.course[1] + tuplesNew1.course[2]
print(classInfo)//第二种方式:直接根据下标取值
var classInfoNew = tuplesNew1.0 + tuplesNew1.1[0] + tuplesNew1.1[1] + tuplesNew1.1[2]
print(classInfoNew)//MARK: - 循环
//第一种形式:
for var i = 1;i < 10;i++ {print(i)
}//第二种形式:
for number in 1..<10 {print(number)
}//第三种形式
for number in 1...10 {print(number)
}//while循环和repeat...while
var i = 8
while i > 0 {i--print(i)
}repeat {    //先执行一次循环体, 再进行相关的循环print("我爱你们")
}while 1 < 0//使用循环遍历数组
var animalArray = ["阿福", "pig", "cat", "tiger", "fish"]
for animal in animalArray {print(animal)
}//使用循环遍历字典
var animalDic = ["dog":"?", "pig":"?"]
for (key,value) in animalDic {print("key = \(key),value = \(value)")
}//MARK: - 分支结构 (if结构和switch格式)//if形式的
let flag1 = true
if flag1 == true {print("11111")
}else {print("你们,....")
}//switch形式使用fallthrough实现贯穿每种可能
var value = 0
switch value {
case 0:print("0")fallthrough
case 10:print("10")fallthrough
default:print("other")
}//特点2:case后可以使用一个范围
switch value {
case 0..<10:print("输出0-10之间的数值")
case 10...100:print("输出10...100的数值")
default:print("other")
}//特点3: case后可以使用 (let和var修饰的常量或者变量) where是否满足某种条件
switch value {
case var i where value >= 0 && value < 6:i = 99print(i)
default:print("other")
}//特点4: case后还可以匹配一个元组
let point = (10,10)
switch point {
case (10,0):print("1111")
case (10,8):print("2222")
case (_,10):        // _ 代表可以忽略某个元素print("3333")
case (10,10):print("4444")
default:print("other")
}//MARK: - 枚举(enum)
//枚举原始类型为int类型
enum direction:Int {case east = 0case south = 1case west = 2case north = 3
}print(direction.east.rawValue)  //rawValue:找到相对应枚举的原始值//枚举原始类型为String类型的
enum Season:String {case spring = "春天"case summer = "夏天"case autumn = "秋天"case winter = "冬天"
}
print(Season.autumn.rawValue)//根据原始值获取枚举的类型
print(direction(rawValue: 2))//MARK: - 函数//表示函数的关键字: func
//函数的类型有: 四种//1. 无返回值, 无参数
func function1() -> Void {print("无返回值, 无参数的")
}function1()//2.无返回值, 有参数
func function2(name str:String) -> Void {print(str)
}function2(name: "lanou")//3:有返回值, 无参数
func function3() -> String {return "zhatian"
}print(function3())//4.有返回值, 有参数
func function4(num1:Int,num2:Int) -> Int {return num1 + num2
}print(function4(5, num2: 6))//函数的返回值为元组类型的
func function5(num1:Int,num2:Int) -> (Int,Int,Int) {return (num1 + num2, num1 - num2, num1 * num2)
}print(function5(9, num2: 2))//外部参数和内部参数
//first、second就叫做外部参数:在函数调用的时候回显示出来这两个名称
//one、two内部参数: 在函数内部使用的
//默认的情况下, 第一个外部参数在调用的时候不显示, 其余的均显示
func function6(first one:Int, second two:Int) {print((one,two))
}function6(first: 10, second: 2)//如果都不想显示外部参数:"_"的作用是忽略外部参数名
func function7(one:Int,_ two: Int) {print("忽略外部参数")
}function7(8, 9)//函数的嵌套
func test1() {func test2() {func test3() {print("哈哈")}test3()}test2()print("........")
}test1()
/*
//inout修饰的参数: 会改变所传参数的值
func test(inout name:String) {name = "MBBoy"print(name)
}var myName = "yuanyuan"
test(&myName)
print(myName)
*///var修饰的参数: 不会修改所传参数的值
func admin(var name:String) {name = "MBBoy"print("name = \(name)")
}var myName = "tianxin"
print("myName = \(myName)")admin(myName)
print("myName = \(myName)")

转载于:https://www.cnblogs.com/dayihao/p/5513244.html

iOS---初识Swift(一)相关推荐

  1. iOS开发Swift篇—(六)流程控制

    iOS开发Swift篇-(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这 ...

  2. IOS之Swift的CoreData入门使用案例

    IOS之Swift的CoreData入门使用案例 CoreData和SQLite3类似,用来把数据存在磁盘上的.可以随时读写. 创建项目钩上 当APP退出的时候,数据消失. 使用CoreData,退出 ...

  3. 李洪强iOS开发Swift篇—02_变量和常量

    李洪强iOS开发Swift篇-02_变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3. ...

  4. [book] iOS 8 Swift Programming Cookbook

    iOS 8 Swift Programming Cookbook 资源地址 http://pan.baidu.com/s/1c0hn1Gc 书籍介绍 源码截图 书籍截图

  5. iOS开发 swift 3dTouch实现 附代码

    iOS开发 swift 3dTouch实现 附代码 一.What? 从iphone6s开始,苹果手机加入了3d touch技术,最简单的理解就是可以读取用户的点击屏幕力度大小,根据力度大小给予不同的反 ...

  6. iOS之Swift实现调用第三方地图应用导航

    iOS之Swift实现调用第三方地图应用导航 开始的一些话 关于坐标系 源码 调用方法 一点注意事项 开始的一些话 作为一个"半路出家"的iOS的程序猿,一直使用OC开发,也想过使 ...

  7. 谷歌插件之蓝湖代码生成器,iOS,Android,Swift,Flutter

    这是一个谷歌插件,当打开蓝湖网站时,可识别出蓝湖生成的html代码并显示插件面板,可生成iOS,Android,Swift,Flutter代码,非常方便 效果请看下方GIF 如何下载插件 路径1:Gi ...

  8. 效率成吨提升之代码生成器-蓝湖工具神器iOS,Android,Swift,Flutter

    开源地址1: https://github.com/zhanghuanProgrammer/LanHuExport 开源地址2:蓝湖移动端辅助工具LanHuTool-HTML5其他资源-CSDN下载 ...

  9. Blockchain Programming in iOS Using Swift 使用Swift在iOS中进行区块链编程 Lynda课程中文字幕

    Blockchain Programming in iOS Using Swift 中文字幕 使用Swift在iOS中进行区块链编程 中文字幕Blockchain Programming in iOS ...

  10. iOS开发Swift语言学习教程-欧阳坚-专题视频课程

    iOS开发Swift语言学习教程-16345人已学习 课程介绍         Swift这套视频是针对有Objective-C/iOS基础,想转成Swift开发的学习视频,视频中从Swift语法,结 ...

最新文章

  1. C++语言map和unordered_map的下标操作
  2. Why Opportunity uses US as local instead of ZH - language determination in
  3. C语言转移表之加减乘除无限进化版
  4. 一种可提高导师寿命的有效方案
  5. azure web应用部署_使用Visual Studio Code将Python应用程序部署到Azure Functions
  6. 陈国君Java程序设计基础笔记和习题
  7. C语言小程序:找出100以内素数
  8. 单场淘汰制场次计算方法_怎样用单循环制进行的比赛计算场数
  9. voip|网络电话,软件实现电信座机
  10. MEMS惯性传感器初始姿态角的确定
  11. 这42个Python小例子,太走心了 !
  12. 说你玻璃心的就想免费耍流氓
  13. C语言数据结构:链表-顺序表:初始化及操作
  14. 一枚前端UI组件库 KUI for Vue
  15. 2021-2027全球与中国TAC功能膜市场现状及未来发展趋势
  16. iWatch 页面导航
  17. 平面设计需要学习的软件
  18. GSY 作为开发者,这四年走过的身影,感谢技术让你我相遇
  19. ipip.net IP位置信誉信息爬取
  20. 《C Primer Plus》第七章--C控制语句:分支和跳转(if else switch continue break goto 逻辑运算符ctype.h)

热门文章

  1. FPGA是什么?为什么要使用它?
  2. 使用LabVIEW编写简单串口采集程序
  3. 程序员选择去国企好还是互联网好?身体好去互联网,不好就去国企
  4. HCT:深度是我们没有的奢侈品
  5. 注塑模具:要想做的好,就得把握五种注塑时间表
  6. TEA微型加密算法实战
  7. CSS动画的性能分析和浏览器GPU加速
  8. 《GNU_Make 中文手册》笔记之一
  9. SQL学习之“集合运算”
  10. 相关分析——斯皮尔曼等级相关Python实现