iOS---初识Swift(一)
一、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(一)相关推荐
- iOS开发Swift篇—(六)流程控制
iOS开发Swift篇-(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这 ...
- IOS之Swift的CoreData入门使用案例
IOS之Swift的CoreData入门使用案例 CoreData和SQLite3类似,用来把数据存在磁盘上的.可以随时读写. 创建项目钩上 当APP退出的时候,数据消失. 使用CoreData,退出 ...
- 李洪强iOS开发Swift篇—02_变量和常量
李洪强iOS开发Swift篇-02_变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3. ...
- [book] iOS 8 Swift Programming Cookbook
iOS 8 Swift Programming Cookbook 资源地址 http://pan.baidu.com/s/1c0hn1Gc 书籍介绍 源码截图 书籍截图
- iOS开发 swift 3dTouch实现 附代码
iOS开发 swift 3dTouch实现 附代码 一.What? 从iphone6s开始,苹果手机加入了3d touch技术,最简单的理解就是可以读取用户的点击屏幕力度大小,根据力度大小给予不同的反 ...
- iOS之Swift实现调用第三方地图应用导航
iOS之Swift实现调用第三方地图应用导航 开始的一些话 关于坐标系 源码 调用方法 一点注意事项 开始的一些话 作为一个"半路出家"的iOS的程序猿,一直使用OC开发,也想过使 ...
- 谷歌插件之蓝湖代码生成器,iOS,Android,Swift,Flutter
这是一个谷歌插件,当打开蓝湖网站时,可识别出蓝湖生成的html代码并显示插件面板,可生成iOS,Android,Swift,Flutter代码,非常方便 效果请看下方GIF 如何下载插件 路径1:Gi ...
- 效率成吨提升之代码生成器-蓝湖工具神器iOS,Android,Swift,Flutter
开源地址1: https://github.com/zhanghuanProgrammer/LanHuExport 开源地址2:蓝湖移动端辅助工具LanHuTool-HTML5其他资源-CSDN下载 ...
- Blockchain Programming in iOS Using Swift 使用Swift在iOS中进行区块链编程 Lynda课程中文字幕
Blockchain Programming in iOS Using Swift 中文字幕 使用Swift在iOS中进行区块链编程 中文字幕Blockchain Programming in iOS ...
- iOS开发Swift语言学习教程-欧阳坚-专题视频课程
iOS开发Swift语言学习教程-16345人已学习 课程介绍 Swift这套视频是针对有Objective-C/iOS基础,想转成Swift开发的学习视频,视频中从Swift语法,结 ...
最新文章
- C++语言map和unordered_map的下标操作
- Why Opportunity uses US as local instead of ZH - language determination in
- C语言转移表之加减乘除无限进化版
- 一种可提高导师寿命的有效方案
- azure web应用部署_使用Visual Studio Code将Python应用程序部署到Azure Functions
- 陈国君Java程序设计基础笔记和习题
- C语言小程序:找出100以内素数
- 单场淘汰制场次计算方法_怎样用单循环制进行的比赛计算场数
- voip|网络电话,软件实现电信座机
- MEMS惯性传感器初始姿态角的确定
- 这42个Python小例子,太走心了 !
- 说你玻璃心的就想免费耍流氓
- C语言数据结构:链表-顺序表:初始化及操作
- 一枚前端UI组件库 KUI for Vue
- 2021-2027全球与中国TAC功能膜市场现状及未来发展趋势
- iWatch 页面导航
- 平面设计需要学习的软件
- GSY 作为开发者,这四年走过的身影,感谢技术让你我相遇
- ipip.net IP位置信誉信息爬取
- 《C Primer Plus》第七章--C控制语句:分支和跳转(if else switch continue break goto 逻辑运算符ctype.h)