博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS---初识Swift(一)
阅读量:4621 次
发布时间:2019-06-09

本文共 5752 字,大约阅读时间需要 19 分钟。

一、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中的输出语句:printprint("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 + strprint(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
= ["YaQian", "XQ", "FatZhou"]//定义一个空数组 (字符串)let array = Array
()print(array)//访问数组中的元素print(nameArray[1])//向数组中添加元素var int_array = Array
()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
= ["a":18, "b":69, "c":38]print(dic)//定义空字典var dic1 : Dictionary
= [:]var dic2 = Dictionary
()//往字典里赋值dic["d"] = 50print(dic)//修改字典中的内容 (根据键值修改)dic["a"] = 90print(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) = tuplesNewvar 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...whilevar i = 8while 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 = trueif flag1 == true { print("11111")}else { print("你们,....")}//switch形式使用fallthrough实现贯穿每种可能var value = 0switch value {case 0: print("0") fallthroughcase 10: print("10") fallthroughdefault: 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 = 99 print(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 = 0 case south = 1 case west = 2 case 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

你可能感兴趣的文章
利用Lucene把文本的字体格式进行改动,然后输出到一个新的文件里
查看>>
[Openstack] Expecting an auth URL via either --os-auth-url or env[OS_AUTH_URL]
查看>>
How to Create Modifiers Using the API QP_MODIFIERS_PUB.PROCESS_MODIFIERS
查看>>
待飞笔记(第一天 )
查看>>
解惑好文:移动端H5页面高清多屏适配方案
查看>>
traefik添加多证书
查看>>
PhantomJs 笔记
查看>>
js设计模式--语言类型
查看>>
C#多线程之二:ManualResetEvent和AutoResetEvent
查看>>
忽略UserInterfaceState.xcuserstate
查看>>
ReactNative--Flexbox布局
查看>>
java实现读取文件大全
查看>>
[Cordova] 无法显示Alert视窗
查看>>
借助过度区选择阈值
查看>>
评论列表显示及排序,个人中心显示
查看>>
JavaWeb学习笔记总结 目录篇
查看>>
C#根据html生成PDF
查看>>
Neutron SDN 手动实现手册
查看>>
linux下core文件调试方法
查看>>
20个创意404错误页面设计的启示
查看>>