Swift-基础-Day1

来源:互联网 发布:办户外婚礼多少钱知乎 编辑:程序博客网 时间:2024/05/17 01:56
<pre name="code" class="plain">////  main.swift//  swift-one////  Created by Qsyx on 16/6/13.//  Copyright © 2016年 Qsyx. All rights reserved.//import Foundationprint("Hello, World!")//常量: 一个不可再次更改的对象//变量:可以再次更改的对象//常量的声明let a = 1//变量的声明var b = 1b = 200//类型标注var c : Int = 3var d : Double = 9.888//字符类型var e : Character = "a"//字符串类型var f : String = "dasd"//不管字符还是字符串类型,全部使用双引号//常量和变量的命名//不能以数组开头,不能使用特殊符号,不能使用关键字let eee = 2//输出常量和变量//\(常量或变量)//swift中,当一行上只有一条代码时:分号写或不写都可以.//当一行上有多条代码时,分号必须写var g = 4 ;  var h = 5;//整数及浮点数let i : Int = 10//浮点数let j: Float = 6.77let k: Double = 9.88//类型安全及类型推断//swift中会自动判断数据类型: 不会讲一个错误的类型传给我们使用var l = 7var pi = 3.14var q = "u"//数据类型转换(整数与浮点数转换)(字符串与整数转换)//整数与浮点数转换//将类型写在前面:将想要转换的对象用小括号括起来var w = Double(l)var ff = Double(l)*3.14var pii = Int(pi)print(ff)//字符串与整数转换:要求做到有意义的转换let str1 = Int("1222")print(str1)// 类型别名typealias char = Charactervar ch : Character = "j"var ch2 :char = "i"//12 布尔值 truevar bool : Bool = truebool = false//13.元组//将多个元素组合到一起,称为元组,元组里面的数据类型可以不同 (元组里面的元素个数最好不要大于7)//声明元组let yuanzu = (404,"NotFound")//获取元组的元素print("yuanzu是\(yuanzu)")print(yuanzu.0,yuanzu.1)//声明元组的另一种方式let (int,string) = (1,"这是元组")print(int,string)//14 可选类型://在声明时: 将?放到类型的后面, 将对象设置为可选类型: 如果可选类型我们赋予初始值,对象使用初始值;如果我们没有赋予初始值;如果我们没有赋予初始值,则系统会默认为nilvar optional: Int? = 10print(optional)//15 nil:当一个可选类型我们没有赋予初始值时,系统会默认这个对象为nil//16 强制解析:将一个可选类型的对象变为一般类型的对象 以供我们使用,在取值时,将!放到对象的后面print(optional!)//17 可选绑定: 判断 当可选类型有值时,条件成立,如果可选类型为nil 条件不成立 //let 一个名称 = 之前的某一个对象var asd : Int?if let xx = asd{    print(xx)}else{    print("空")}//18 隐式解析可选类型:就是将一个可选类型的对象变为以一个可以进行自动解析的可选类型: 其实就是将!在声明时放到类型的后面,而不是在取值时,放到对象的后面var int12 :Int! = 12print(int12)//19 使用断言进行调试 assert//当条件成立,代码继续向下执行 不影响整体工程; 当条件不成立 运行时会崩溃到这里.//断言只是做辅助调试使用,没有实际意义var int20 :Int = 20assert(int20 < 100)print("asdasdasd")//运算符/** *  基本运算符 *///1 赋值运算符  =//2 算数运算符 + - * / %// swift 取余运算是可以对小数取余的let yushu = 5.5%2.5print(yushu)//3 组合赋值运算符 += -= *= /=//swift中把++,--去掉了var iii = 1iii += 1//比较运算符 > < <= >= == !=//5 三目运算符 条件?答案1:答案2//空合运算符 可选对象一 ?? 可算对象二//当可选对象一为nil时,选择可选对象二使用,如果可选对象一有值,使用可选对象一var kong1 : Int?var kong2 : Int? = 3var kong3 = kong1 ?? kong2print(kong3)//7 区间运算符 ... 三个点就是区间运算符//1...5 // 1,2,3,4,5//8 半开区间运算符 ..<//1..<5 //1,2,3,4//逻辑运算符 && || !/** *  字符串 *///1. 字符串字面量let str10 = "string"//2.字符串初始化空字符串let str11 : String = ""let str12 : String = String()//3 判断是否字符串为空 isEmptyprint(str10.isEmpty)//4.字符串的可变性let str13 = "hhhh"var str14 = "aaaa"//字符串的拼接str14 += "k"print(str14)var str15 = "字符串1"var str16 = "加上字符串2"var str17 = str15 + str16print(str17)//字符串中字符遍历var str18 = "china"for c1 in str18.characters{    print(c1)}//字符串数据类型var ch1 : Character = "j"//字符串插值let str19 = "strjjjjj\(str18)ooooo"print(str19)//计算字符数量print(str18.characters.count)// 10.字符串索引var str20 = "string"//获取第一个索引//获取第一个索引print(str20.startIndex)//获取最后一个索引print(str20.endIndex)//获取第二个索引print(str20.startIndex.successor())//获取后数第二个索引print(str20.endIndex.predecessor())//获取任意一个索引print(str20.startIndex.advancedBy(3))print(str20.endIndex.advancedBy(-3))//使用索引print(str20[str20.startIndex])//11 indices 使用    index//indices能将字符的下表获取for iiii in str20.characters.indices{    print(str20[iiii])}//12 字符串插入str20.insert("a", atIndex:str20.startIndex.advancedBy(3))print(str20)//13.字符串删除//单个字符的删除str20.removeAtIndex(str20.startIndex)print(str20)//删除某一段的范围let Range = str20.endIndex.advancedBy(-3)..<str20.endIndexstr20.removeRange(Range)print(str20)//14.字符串比较let a10 = "asdf"let a11 = "asdf"//比较字符串是否相等  ==if a10 == a11{    print("相等")}else{    print("不等")}//15 前缀 后缀print(a10.hasPrefix("asd"))print(a10.hasSuffix("df1"))        


                                             
0 0
原创粉丝点击