玩儿转Swift——学习笔记(持续更新)

玩儿转Swift——学习笔记(持续更新),第1张

概述最近在学习IOS开发,将笔记记下! 常量和变量 let - constants 常量 let maxNum =32 var - variables 变量 var index = 0 同时声明多个变量 var x=0.0,y=0.0,z=0.0 类型可以推导出来,也可以显式的声明 var index = 0 //这里是一个整形var str:String = "123" //这是一个字符串 基本

最近在学习IOS开发,将笔记记下!

常量和变量

let - constants 常量
let maxnum =32
var - 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 可选值

或者是一个值,或者是没有值 没有值的时候是nil
var 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——学习笔记(持续更新)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1085476.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存