最近在学习IOS开发,将笔记记下!
常量和变量
let - constants 常量let maxnum =32var - variables 变量
var index = 0同时声明多个变量
var x=0.0,y=0.0,z=0.0类型可以推导出来,也可以显式的声明
var index = 0 //这里是一个整形var str:String = "123" //这是一个字符串
基本类型
Int(整型)
Double,float(浮点数)
String(字符串)
Bool(布尔类型)
数字类型
十进制
二进制 0b101
八进制 0o5
十六进制 0x5
可以用科学计数
let float_a = 0.012let float_b = 1.2e-2 //值为0.012数字可以用下划线隔开
let bigNum_b = 1_000_000let bigNum_c = 1_0000_0000类型转换
let num_a:Int = 1let num_b:Double = 1.3232let num_c:Double = num_b + Double(num_a) //此处需要强制转换
布尔类型与if语句
if后面可以不用加括号,但是大括号是必须的。
条件不能为其他类型,必须为布尔类型
let isTrue = trueif isTrue{ println("is true") }else{ println("is false")}元组 Tuples
将多个不同的值集合位一个数据
var registrationResult = (true,"女神","女")let (isRegisterSuccess,nickname,gender) = registrationResultisRegisterSuCSS //此处就为truenickname //"女神"gender //"女"可以这样取值registrationResult.0 //此处就为trueregistrationResult.1 //"女神"registrationResult.2 //"女"通过下划线忽略部分数值
let (isRegisterSuccess,_,_) = registrationResult
Optionals 可选值
或者是一个值,或者是没有值 没有值的时候是nilvar a:Int?a //此时是nila = 12 //此时是(Some 12)a! //此时是12 通过!解包Optional Binding直接被解包
var age:Int? = 18if let yourAge = age{ pringln("\(yourAge)") }
基础运算符
赋值 *** 作var b = 1var a = b加减乘除,求余(模)
let a = 5let b = 3var c = 0 a + ba - ba * ba / b //此处除数不能为0,求余也不能为0a % bInt.max //整型的最大值Int.min //整型的最小值“++”,”- -“自加自减
var c = 0c++c--c += 2比较 *** 作符(==,!=,>,<,===,!==)
6.nil聚合运算符
- a必须是Optional,b需要和a解包后的类型相同
a ?? b //a != nil ? a : b区间运算符与for-in
[a,b] a...b //闭区间[a,b) a..<b //前闭后开for index in 0..< array.count{ array[index]; //index是一个常量}逻辑运算符
!a //非a || b //或者a && b //并且String 和 Character
//字符串声明var str1= "hello" //可变字符串let str2 = "world" //不可变字符串var str3 = ""var str4 = String()str1.isEmpty //判断字符串是否为空,这里为falsefor c in str1{ println(c) //将每个字符打印出来}单独字符var ch:Character = "a"str1.append(ch) //helloa//不能使用str1 += ch,字符串之间可以使用count(str1) //计算出字符串的长度//Unicode\u{1F496} //swift 计数1, OC计数2;String基本 *** 作
var name = "第二章,字符串的运算法"var string = "hello world"//字符串可以==比较name == string //false//通过字典序进行字符串大小判断let str1 = "abc"let str2 = "d"str2 > str1 //truename.hasPrefix("第二章") //判断是否包含前缀truename.hasSuffix("运算法") //判断是否包含结尾falsestring.uppercaseString //转换成大写HELLO WORLDstring.lowercaseString //转换成小写hello world
11.导入foundation使用String更多字符串功能
import Foundationstr.cAPItalizedString //单次首字母大写str.uppercaseString //所有字母大写str.lowercaseString //所有字母小写str.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) //去掉两边的空格str.stringByTrimmingCharactersInSet(NSCharacterSet.(charactersInString: " !")) //去掉两边的空格和叹号str.componentsSeparatedByString(" ") //按空格分割字符串成单词str.componentsSeparatedByCharactersInSet(NsCharacterSet(charactersInString:" !-")) //各种字符分割字符串str.join(["1","2","3"]) //用str来连接数组中的元素str.brIDgetoObjectiveC() //转换成ObjectiveC字符串对象
12.String.Index,Range
//range 查早字符串子字符串范围var str="Welcome to Play Swift! Step by Step learn Swift Language from Now!"str.rangeOfString("Step") //{some "23..<27"}str.rangeOfString("Step",options:NsstringCompareOptions.BackwardsSearch) //从后向前搜索 {some31..<35}str.rangeOfString("welcome",options:NsstringCompareOptions.CaseInsensitiveSearch) //忽略大小写搜索{ some0..<7}//索引 str.startIndexstr.endindexlet strRange = Range<String.Index(start:str.startIndex,end:str.endindex) //新建一个range//索引定义let startIndex:String.Index = str.startIndexlet endindex:String.Index = advance(str.startIndex,10)//索引和 range 组合 可以对字符串 添加删除 替换
13.数组的初始化
ar array =["1","3","4"] //数组类型相同 var array1:[String] = ["1","4"]var Array3:Array<String>= ["1","4"]//创建空数组var array4 = [Int]() //0 elements 0个元素var str = String() //调用类对象 var array5 = Array<String>()//可用 array =[] 清空数据 当时数据类型已经确定array=[String]()array=Array<String>()//数组元素添加 array.append()array6=[Int](count:10,RepeatValue:0) //初始化重载 10个为0的元素被创建var array7 = [2,2,4]var array8= array6+array7 // 结果为10个0然后2 2 4 猜测等同与array8=array6.append(7)
14.数组基本 *** 作
//第一种隐式地声明,后两种显式地声明var array = ["A","B","C"]var array1:[String] = ["A","C"]var array2:Array<String> = ["A","C"]//修改数组中的数据array[0] = "D"array//写一个空数组并给它赋值var array3 = [Int]()var array4 = Array<String>()var array5:[Int] = []array5.append(2)array5//清空数组的值并重新赋值。注意:清空数组但不会改变数组可以存储的类型array = []array.append("a")array//将一个数组的值赋成几个一样的值array4 = [String](count: 5,repeatedValue: "A")//加(合并)一个数组array3.append(1)var array6:Array<Int> = [2,3,4,5]var array7 = array3 + array6
15.字典的初始化
//字典意义通过 键快速找到值 如同C++ JAVA中的Map 可 HashMap- - 字典是无序的var dictionary =[1:"A",2:"B",3:"C"]//键:值 Key:Value//字典定义:var dict<Int,String>[Int:String][String:String]var course =[76:"课程1",77:"课程2",128:"课程3"]var course2:Dictionary<Int,String>=[76:"课程1",128:"课程3"]var course3:[Int:String]=[76:"课程1",128:"课程3"]//定义个空字典var dict = Dictionary<Int,String>() var dict2=[Int:Sring]() //字典的清空 如同array 去掉声明关键字vardict=[:]
16.字典的基础 *** 作
//统计有多少项键值对dict.count//返回是否为空dict.isEmpty//获取制定key的value值返回可选类型dict[key] //添加键值对dict[newKey] = "new Value"//值可以重复dict[oldKey] = "new Value"//返回将要修改的key对应的原值dict.updateValue("value",forKey:key) //移除一个键值对返回被删的值dict.removeValueForKey(key)//快速遍历for (key,value) in dict//字典key的数组dict.keys //字典value的数组dict.values//强制转换成数组Array(dict.keys) [Int](dict.keys)
17.循环结构
for-in 循环的应用场景:遍历区间: for i in 0...99遍历字符串: for c in str遍历数组: for item in arr / for (index,item) in enumerate(arr)遍历字典: for (index,item) in dict不知道需要循环多少次,使用 while 循环。比如,查找。
18.选择结构
//1. condition 条件是不需要加()//2. statement 即使只有一句话 也要加 {}if condition{ statements}else if condition{ statements}else{ statements}//1. switch不需要显示的写break,所以判断多个值用逗号分割//2. case可以是任何类型switch char{ case "a","A": println("Great"); case "B": println("Just so-so"); defalut: println("It's bad");}
19.switch语句的高级用法
//可以case加区间case 0..<100://可以使用元组case (Int,Int) ://wherecase (x,y) where x=y:// 元组加区间case (-2...2,-2...2)://switch 可以进行选择判断、可以进行区间 切必须涵盖所有的情况。可以使用fallthrough进行通过本次判断
20.控制转移和二位数组
//1.allthrough下面的case不能声明变量//2.break跳出循环体//3.break跳出当前switch判断//4.continue跳出当前 *** 作继续循环//5.给循环一个标签,可以通过跳出该标签所示循环直接跳出多层循环mainloop:for i in 100{ for j in 10{ break mainloop }}总结
以上是内存溢出为你收集整理的玩儿转Swift——学习笔记(持续更新)全部内容,希望文章能够帮你解决玩儿转Swift——学习笔记(持续更新)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)